diff --git a/home/.chezmoiignore.tmpl b/home/.chezmoiignore.tmpl index f01d11c..8d3e9e3 100644 --- a/home/.chezmoiignore.tmpl +++ b/home/.chezmoiignore.tmpl @@ -24,6 +24,17 @@ scripts {{ if ne .chezmoi.osRelease.id "arch" }} .config/*-flags.conf {{ end }} +{{ if eq .chezmoi.osRelease.id "nixos" }} +.config/bash +.config/fcitx5 +.config/bat +.config/doom +.config/fish +.config/zsh +.config/lsd +.config/keyd +.config/readline +{{ end }} {{ end }} {{ if ne .chezmoi.os "darwin" }} diff --git a/home/dot_config/nvim/lua/plugins/misc.lua b/home/dot_config/nvim/lua/plugins/misc.lua index cb9db10..061ea06 100644 --- a/home/dot_config/nvim/lua/plugins/misc.lua +++ b/home/dot_config/nvim/lua/plugins/misc.lua @@ -3,8 +3,8 @@ return { { "wakatime/vim-wakatime", lazy = false }, { import = "plugins.mod.toggleterm" }, { import = "plugins.mod.which-keys-nvim" }, - { import = "plugins.mod.copilot-lua" }, - { import = "plugins.mod.avante-nvim" }, + -- { import = "plugins.mod.copilot-lua" }, + -- { import = "plugins.mod.avante-nvim" }, { "kawre/leetcode.nvim", build = ":TSUpdate html", -- if you have `nvim-treesitter` installed diff --git a/nixcfgs/.gitignore b/nixcfgs/.gitignore index e69de29..89b3a77 100644 --- a/nixcfgs/.gitignore +++ b/nixcfgs/.gitignore @@ -0,0 +1 @@ +secrets.nix diff --git a/nixcfgs/hosts/zephyrus/default.nix b/nixcfgs/hosts/zephyrus/default.nix index c64b175..d4044d7 100644 --- a/nixcfgs/hosts/zephyrus/default.nix +++ b/nixcfgs/hosts/zephyrus/default.nix @@ -17,8 +17,9 @@ ../../modules/nixos/docker.nix ../../modules/nixos/firefox.nix ../../modules/nixos/desktop/gnome.nix - # ../../modules/nixos/desktop/kde.nix - ../../modules/nixos/display-manager/gdm.nix + # ../../modules/nixos/desktop/niri.nix + ../../modules/nixos/desktop/kde.nix + ../../modules/nixos/display-manager/sddm.nix ./hardware-configuration.nix ./keyd.nix ./packages.nix @@ -26,5 +27,6 @@ nixpkgs.config.allowUnfree = true; networking.hostName = "zephyrus"; + hardware.enableRedistributableFirmware = true; system.stateVersion = "25.05"; } diff --git a/nixcfgs/hosts/zephyrus/packages.nix b/nixcfgs/hosts/zephyrus/packages.nix index e9a973f..9cc9b5d 100644 --- a/nixcfgs/hosts/zephyrus/packages.nix +++ b/nixcfgs/hosts/zephyrus/packages.nix @@ -1,6 +1,4 @@ -{ pkgs, ... }: - -{ +{pkgs, ...}: { environment.systemPackages = with pkgs; [ asusctl supergfxctl @@ -9,4 +7,3 @@ services.asusd.enable = true; services.supergfxd.enable = true; } - diff --git a/nixcfgs/modules/home/dev/c.nix b/nixcfgs/modules/home/dev/c.nix index e69de29..f97368d 100644 --- a/nixcfgs/modules/home/dev/c.nix +++ b/nixcfgs/modules/home/dev/c.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: + +{ + home.packages = with pkgs; [ + gcc + ]; +} diff --git a/nixcfgs/modules/nixos/chromium.nix b/nixcfgs/modules/nixos/chromium.nix index b53d3c8..b7c1b95 100644 --- a/nixcfgs/modules/nixos/chromium.nix +++ b/nixcfgs/modules/nixos/chromium.nix @@ -1,8 +1,15 @@ {pkgs, ...}: { programs.chromium = { + enable = true; + homepageLocation = "https://duckduckgo.com"; + defaultSearchProviderSearchURL = "https://duckduckgo.com?q={searchTerms}"; extraOpts = { - "BrowserSignin" = 0; + "BrowserSignin" = 1; "PasswordManagerEnabled" = false; + "ExtensionManifestV2Availability" = 2; }; + extensions = [ + "cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin + ]; }; } diff --git a/nixcfgs/modules/nixos/desktop/niri.nix b/nixcfgs/modules/nixos/desktop/niri.nix new file mode 100644 index 0000000..5916b1c --- /dev/null +++ b/nixcfgs/modules/nixos/desktop/niri.nix @@ -0,0 +1,8 @@ +{pkgs, ...}: { + programs.niri.enable = true; + environment.systemPackages = with pkgs; [ + waybar + mako + rofi + ]; +} diff --git a/nixcfgs/modules/nixos/display-manager/sddm.nix b/nixcfgs/modules/nixos/display-manager/sddm.nix index c572f22..b654af2 100644 --- a/nixcfgs/modules/nixos/display-manager/sddm.nix +++ b/nixcfgs/modules/nixos/display-manager/sddm.nix @@ -1,10 +1,34 @@ -{pkgs, ...}: { +{pkgs, ...}: + +# See https://www.reddit.com/r/NixOS/comments/1kcj34p/how_to_apply_this_sddm_theme_on_nixos/ +let + custom-sddm-astronaut = pkgs.sddm-astronaut.override { + embeddedTheme = "astronaut"; + #themeConfig = { + # Background = "path/to/background.jpg"; + # Font = "M+1 Nerd Font"; + #}; + }; + +in { + # Enable the KDE Plasma Desktop Environment. services.displayManager.sddm = { enable = true; - wayland.enable = true; extraPackages = with pkgs; [ - sddm-astronaut - ]; - # theme = "sddm-astronaut-theme"; + custom-sddm-astronaut + ]; + + theme = "sddm-astronaut-theme"; + settings = { + Theme = { + Current = "sddm-astronaut-theme"; + }; + }; }; + + environment.systemPackages = with pkgs; [ + custom-sddm-astronaut + kdePackages.qtmultimedia + ]; + } diff --git a/nixcfgs/modules/nixos/firefox.nix b/nixcfgs/modules/nixos/firefox.nix index 4d9f895..c90b7b5 100644 --- a/nixcfgs/modules/nixos/firefox.nix +++ b/nixcfgs/modules/nixos/firefox.nix @@ -10,23 +10,70 @@ preferences = { "widget.use-xdg-desktop-portal.file-picker" = 1; + "widget.use-xdg-desktop-portal.mime-handler" = 1; + "screenshots.browser.component.enabled" = false; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.archive.enabled" = false; + "browser.shell.checkDefaultBrowser" = false; + "browser.contentblocking.category" = "strict"; + "browser.formfill.enable" = false; + "extensions.formautofill.creditCards.enabled" = false; + "dom.forms.autocomplete.formautofill" = false; + "browser.urlbar.update2.engineAliasRefresh" = true; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; }; policies = { DisableTelemetry = true; BlockAboutConfig = false; + DisableFirefoxScreenshots = true; DontCheckDefaultBrowser = true; - ExtensionSettings = let - moz = short: "https://addons.mozilla.org/firefox/downloads/latest/${short}/latest.xpi"; - in { - "*".installation_mode = "blocked"; - - "uBlock0@raymondhill.net" = { - install_url = moz "ublock-origin"; - installation_mode = "force_installed"; - updates_disabled = true; + ExtensionSettings = with builtins; let + extension = short: uuid: { + name = uuid; + value = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/${short}/latest.xpi"; + installation_mode = "force_installed"; + }; }; + in + listToAttrs [ + (extension "ublock-origin" "uBlock0@raymondhill.net") + (extension "multi-account-containers" "@testpilot-containers") + (extension "side-view" "@webcompat@mozilla.org") + (extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}") + ]; + + SearchEngines = { + Default = "DuckDuckGo"; + Add = [ + { + Alias = "@np"; + Description = "Search in NixOS Packages"; + IconURL = "https://nixos.org/favicon.ico"; + Method = "GET"; + Name = "NixOS Packages"; + URLTemplate = "https://search.nixos.org/packages?from=0&size=200&sort=relevance&type=packages&query={searchTerms}"; + } + { + Alias = "@no"; + Description = "Search in NixOS Options"; + IconURL = "https://nixos.org/favicon.ico"; + Method = "GET"; + Name = "NixOS Options"; + URLTemplate = "https://search.nixos.org/options?from=0&size=200&sort=relevance&type=packages&query={searchTerms}"; + } + { + Alias = "@hm"; + Description = "Search in Home Manager Options"; + IconURL = "https://nixos.org/favicon.ico"; + Method = "GET"; + Name = "Home Manager options"; + URLTemplate = "https://home-manager-options.extranix.com/?query={searchTerms}"; + } + ]; }; }; }; diff --git a/nixcfgs/users/js0ny/default.nix b/nixcfgs/users/js0ny/default.nix index b3522eb..6a377d9 100644 --- a/nixcfgs/users/js0ny/default.nix +++ b/nixcfgs/users/js0ny/default.nix @@ -15,6 +15,7 @@ ./programs/shell.nix ./programs/vscode.nix ./programs/git.nix + ../../modules/home/dev/c.nix ../../modules/home/dev/java.nix ../../modules/home/dev/nix.nix ../../modules/home/dev/python.nix diff --git a/nixcfgs/users/js0ny/packages/flatpak.nix b/nixcfgs/users/js0ny/packages/flatpak.nix index 0ff9962..a39ef18 100644 --- a/nixcfgs/users/js0ny/packages/flatpak.nix +++ b/nixcfgs/users/js0ny/packages/flatpak.nix @@ -1,5 +1,5 @@ # https://github.com/gmodena/nix-flatpak -{nix-flatpak, ...}: { +{...}: { services.flatpak.remotes = [ { name = "flathub"; @@ -23,4 +23,11 @@ # "com.vivaldi.Vivaldi" "com.getpostman.Postman" ]; + services.flatpak.overrides = { + "com.tencent.WeChat" = { + Environment = { + QT_IM_MODULE = "fcitx"; + }; + }; + }; } diff --git a/nixcfgs/users/js0ny/packages/gui.nix b/nixcfgs/users/js0ny/packages/gui.nix index ad6bcbd..3ab2ef6 100644 --- a/nixcfgs/users/js0ny/packages/gui.nix +++ b/nixcfgs/users/js0ny/packages/gui.nix @@ -24,5 +24,6 @@ cherry-studio vivaldi kdePackages.kdeconnect-kde + picard ]; } diff --git a/nixcfgs/users/js0ny/programs/chromium.nix b/nixcfgs/users/js0ny/programs/chromium.nix index dd36b7f..b406b83 100644 --- a/nixcfgs/users/js0ny/programs/chromium.nix +++ b/nixcfgs/users/js0ny/programs/chromium.nix @@ -3,6 +3,9 @@ enable = true; commandLineArgs = [ "--enable-wayland-ime" + "--enable-features=WaylandWindowDecorations" + "--enable-features=UseOzonePlatform" + "--ozone-platform-hint=auto" ]; extensions = [ {id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # ublock origin @@ -10,6 +13,7 @@ {id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";} # dark reader {id = "gfbliohnnapiefjpjlpjnehglfpaknnc";} # surfingkeys {id = "bpoadfkcbjbfhfodiogcnhhhpibjhbnh";} # immersive translate + {id = "dhdgffkkebhmkfjojejmpbldmpobfkfo";} # tampermonkey ]; }; } diff --git a/nixcfgs/users/js0ny/programs/firefox.nix b/nixcfgs/users/js0ny/programs/firefox.nix new file mode 100644 index 0000000..b39c9f3 --- /dev/null +++ b/nixcfgs/users/js0ny/programs/firefox.nix @@ -0,0 +1,5 @@ +{pkgs, ...}: { + programs.firefox = { + enable = true; + }; +} diff --git a/nixcfgs/users/js0ny/programs/gnome.nix b/nixcfgs/users/js0ny/programs/gnome.nix index 63bce2e..072ef51 100644 --- a/nixcfgs/users/js0ny/programs/gnome.nix +++ b/nixcfgs/users/js0ny/programs/gnome.nix @@ -2,8 +2,6 @@ home.packages = with pkgs; [ gnome-tweaks sushi - orchis-theme - adwaita-qt gnomeExtensions.dash-to-dock gnomeExtensions.caffeine gnomeExtensions.logo-menu @@ -32,6 +30,7 @@ icon-theme = "Papirus"; accent-color = "pink"; show-battery-percentage = true; + cursor-theme = "Adwaita"; }; "org/gnome/epiphany" = { ask-for-default = false; @@ -46,15 +45,14 @@ use-custom-icon = false; }; "org/gnome/shell" = { -favorite-apps = [ - "org.kde.dolphin.desktop" - "com.mitchellh.ghostty.desktop" - "chromium-browser.desktop" - "code.desktop" - ]; + favorite-apps = [ + "org.kde.dolphin.desktop" + "com.mitchellh.ghostty.desktop" + "chromium-browser.desktop" + "code.desktop" + ]; }; - }; - qt.style.name = "adwaita"; + # qt.style.name = "adwaita"; } diff --git a/nixcfgs/users/js0ny/programs/plasma.nix b/nixcfgs/users/js0ny/programs/plasma.nix index 89a22c3..6a704d3 100644 --- a/nixcfgs/users/js0ny/programs/plasma.nix +++ b/nixcfgs/users/js0ny/programs/plasma.nix @@ -1,7 +1,33 @@ {pkgs, ...}: { + home.packages = with pkgs.kdePackages; [ + yakuake + ]; programs.plasma = { enable = true; - workspace.iconTheme = "Papirus"; + session.sessionRestore.restoreOpenApplicationsOnLogin = "startWithEmptySession"; + fonts = { + fixedWidth.family = "Maple Mono NF"; + fixedWidth.pointSize = 10; + general.family = "LXGW Neo XiHei"; + general.pointSize = 10; + }; + krunner = { + position = "center"; + }; + workspace = { + iconTheme = "Papirus"; + colorScheme = "BreezeDark"; + }; + kwin = { + virtualDesktops.number = 8; + titlebarButtons = { + left = [ + "more-window-actions" + "on-all-desktops" + "keep-above-windows" + ]; + }; + }; input.touchpads = [ { disableWhileTyping = true; @@ -24,19 +50,59 @@ { location = "bottom"; widgets = [ - "org.kde.plasma.kickoff" - "org.kde.plasma.icontasks" + # "org.kde.plasma.kickoff" + { + name = "org.kde.plasma.kickoff"; + config = { + General = { + icon = "distributor-logo-nixos"; + alphaSort = true; + }; + }; + } + { + name = "org.kde.plasma.icontasks"; + config = { + General = { + launchers = [ + "applications:org.kde.dolphin.desktop" + "applications:chromium-browser.desktop" + "applications:com.mitchellh.ghostty.desktop" + ]; + }; + }; + } "org.kde.plasma.marginsseparator" "org.kde.plasma.systemtray" + { + name = "org.kde.plasma.digitalclock"; + config = { + Appearance = { + dateFormat = "isoDate"; + enabledCalendarPlugins = "alternatecalendar,holidaysevents"; + firstDayOfWeek = 1; + selectedTimeZones = "Local,Asia/Shanghai,Europe/London"; + showSeconds = "Always"; + showWeekNumbers = true; + use24hFormat = 2; + }; + }; + } "org.kde.plasma.digitalclock" + "org.kde.plasma.showdesktop" ]; } # Global menu at the top { location = "top"; - height = 26; - widgets = ["org.kde.plasma.pager"]; + height = 20; + widgets = [ + "org.kde.plasma.pager" + "org.kde.plasma.windowlist" + "org.kde.plasma.marginsseparator" + ]; opacity = "translucent"; + hiding = "dodgewindows"; } ]; }; @@ -45,4 +111,26 @@ accessibility.changeColors.mode = "InvertLightness"; general.mouseMode = "TextSelect"; }; + programs.kate.enable = true; + programs.kate.editor = { + font = { + family = "Maple Mono NF"; + pointSize = 10; + }; + inputMode = "vi"; + }; + programs.konsole = { + enable = true; + defaultProfile = "Default"; + profiles = { + Default = { + command = "${pkgs.fish}/bin/fish"; + colorScheme = "Breeze"; + font = { + name = "Maple Mono NF"; + size = 12; + }; + }; + }; + }; }