From 2f24f85e441d45000f60baabfa0d8fcb2f3ddea6 Mon Sep 17 00:00:00 2001 From: twoneis Date: Sun, 9 Mar 2025 16:40:32 +0100 Subject: [PATCH] restructure apps --- devices/ellaca/default.nix | 1 - modules/apps/alacritty.conf.nix | 2 +- modules/apps/cursor.nix | 16 ++ modules/apps/default.nix | 142 +++++++++-- modules/apps/firefox.nix | 417 ++++++++++++++++---------------- modules/apps/media.nix | 22 -- modules/apps/programs.nix | 84 ------- modules/apps/themes.nix | 62 ----- 8 files changed, 339 insertions(+), 407 deletions(-) create mode 100644 modules/apps/cursor.nix delete mode 100644 modules/apps/media.nix delete mode 100644 modules/apps/programs.nix delete mode 100644 modules/apps/themes.nix diff --git a/devices/ellaca/default.nix b/devices/ellaca/default.nix index dd22a26..299e107 100644 --- a/devices/ellaca/default.nix +++ b/devices/ellaca/default.nix @@ -32,7 +32,6 @@ hardware = { enableRedistributableFirmware = true; - enableAllFirmware = true; cpu.amd.updateMicrocode = true; }; } diff --git a/modules/apps/alacritty.conf.nix b/modules/apps/alacritty.conf.nix index b8caf43..b01bd37 100644 --- a/modules/apps/alacritty.conf.nix +++ b/modules/apps/alacritty.conf.nix @@ -1,4 +1,4 @@ -{config, ...}: let +config: let inherit (config) theme; in { # Rose Pine diff --git a/modules/apps/cursor.nix b/modules/apps/cursor.nix new file mode 100644 index 0000000..ad5f1d1 --- /dev/null +++ b/modules/apps/cursor.nix @@ -0,0 +1,16 @@ +{pkgs, ...}: let + getFrom = url: hash: name: { + gtk.enable = true; + x11.enable = true; + name = name; + size = 24; + package = pkgs.runCommand "moveUp" {} '' + mkdir -p $out/share/icons + ln -s ${pkgs.fetchzip { + url = url; + hash = hash; + }} $out/share/icons/${name} + ''; + }; +in + getFrom "https://github.com/rose-pine/cursor/releases/download/v1.1.0/BreezeX-RosePine-Linux.tar.xz" "sha256-t5xwAPGhuQUfGThedLsmtZEEp1Ljjo3Udhd5Ql3O67c=" "BreezX-RosePine-Linux" diff --git a/modules/apps/default.nix b/modules/apps/default.nix index bd2cca3..ce1e3c6 100644 --- a/modules/apps/default.nix +++ b/modules/apps/default.nix @@ -6,32 +6,31 @@ }: let inherit (lib) mkIf mkForce; inherit (config) conf; -in { - imports = [ - ./firefox.nix - ./media.nix - ./programs.nix - ./themes.nix - ]; - - config = mkIf (conf.host - != "server") { + mkXwlWrapper = import ../niri/xwl-wrapper.nix; + time = pkgs.makeDesktopItem { + name = "peaclock-desktop"; + desktopName = "Time"; + exec = "alacritty -e ${pkgs.peaclock}/bin/peaclock"; + }; +in + mkIf (conf.host != "server") { # Audio security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = mkForce false; + services = { + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = mkForce false; + }; + # Needed for some features in nautilus such as auto-mounting and trash + gvfs.enable = true; }; # Run statically linked and more - environment.systemPackages = with pkgs; [ - nix-alien - ]; - + environment.systemPackages = [pkgs.nix-alien]; programs.nix-ld.enable = true; # Bluetooth @@ -68,5 +67,104 @@ in { }; services.blueman.enable = true; - }; -} + + home-manager.users.${conf.username} = { + home = { + packages = with pkgs; + [ + adwaita-icon-theme + adwaita-qt + adwaita-qt6 + loupe + spotify + amberol + signal-desktop + vesktop + snapshot + nautilus + inkscape + libresprite + gnome-disk-utility + fragments + element-desktop + tor-browser + libreoffice-qt6 + chromium + peaclock + fractal + element-desktop + papers + ] + ++ [ + time + ] + ++ [ + (mkXwlWrapper { + pkgs = pkgs; + name = "Prusa"; + pkg = "prusa-slicer"; + }) + ]; + + file = { + ".config/vesktop/settings.json" = { + source = ./vesktop.conf.json; + }; + ".config/vesktop/settings/settings.json" = { + source = ./vencord.conf.json; + }; + }; + + pointerCursor = import ./cursor.nix pkgs; + }; + + qt = { + enable = true; + platformTheme.name = "adwaita"; + style.name = "adwaita-dark"; + }; + + gtk = { + enable = true; + gtk4.extraConfig = { + gtk-application-prefer-dark-theme = true; + }; + gtk3.extraConfig = { + gtk-application-prefer-dark-theme = true; + }; + gtk2.extraConfig = "gtk-application-prefer-dark-theme=1\n"; + theme.name = "Adwaita Dark"; + }; + + dconf = { + enable = true; + settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; + }; + + programs = { + firefox = import ./firefox.nix pkgs; + + thunderbird = { + enable = true; + profiles = { + "default" = { + isDefault = true; + }; + }; + }; + + mpv.enable = true; + + pandoc.enable = true; + + alacritty = { + enable = true; + settings = import ./alacritty.conf.nix config; + }; + }; + }; + } diff --git a/modules/apps/firefox.nix b/modules/apps/firefox.nix index b7114b2..52119ab 100644 --- a/modules/apps/firefox.nix +++ b/modules/apps/firefox.nix @@ -1,221 +1,208 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config) conf; -in - mkIf (conf.host != "server") { - home-manager.users.${conf.username} = { - programs.firefox = { - enable = true; - profiles = { - "default" = { - id = 0; +{pkgs, ...}: { + enable = true; + profiles = { + "default" = { + id = 0; - search = { - default = "DuckDuckGoo"; - privateDefault = "DuckDuckGoo"; - engines = { - "DuckDuckGo".metaData.hidden = true; - "Google".metaData.hidden = true; - "Amazon.com".metaData.hidden = true; - "Bing".metaData.hidden = true; - "Wikipedia (en)".metaData.hidden = true; - "DuckDuckGoo" = { - urls = [ - { - template = "https://duckduckgo.com/"; - params = [ - { - name = "q"; - value = "{searchTerms}"; - } - ]; - } - ]; - definedAliases = ["@ddg"]; - }; - "Googlee" = { - urls = [ - { - template = "https://google.com/search"; - params = [ - { - name = "q"; - value = "{searchTerms}"; - } - ]; - } - ]; - definedAliases = ["@g"]; - }; - "Wikipedia" = { - urls = [ - { - template = "https://en.wikipedia.org/wiki/Special:Search"; - params = [ - { - name = "search"; - value = "{searchTerms}"; - } - ]; - } - ]; - definedAliases = ["@wiki"]; - }; - "YouTube" = { - urls = [ - { - template = "https://youtube.com/results"; - params = [ - { - name = "search_query"; - value = "{searchTerms}"; - } - ]; - } - ]; - definedAliases = ["@yt"]; - }; - "Nix Packages" = { - urls = [ - { - template = "https://search.nixos.org/packages"; - params = [ - { - name = "channel"; - value = "unstable"; - } - { - name = "type"; - value = "packages"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - definedAliases = ["@np"]; - }; - "Nix Options" = { - urls = [ - { - template = "https://search.nixos.org/options"; - params = [ - { - name = "channel"; - value = "unstable"; - } - { - name = "type"; - value = "packages"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - definedAliases = ["@no"]; - }; - "Arch Wiki" = { - urls = [ - { - template = "https://wiki.archlinux.org/index.php"; - params = [ - { - name = "search"; - value = "{searchTerms}"; - } - { - name = "fulltext"; - value = "1"; - } - ]; - } - ]; - definedAliases = ["@aw"]; - }; - "Github" = { - urls = [ - { - template = "https://github.com/search"; - params = [ - { - name = "q"; - value = "{searchTerms}"; - } - { - name = "type"; - value = "repositories"; - } - ]; - } - ]; - definedAliases = ["@gh"]; - }; - }; - force = true; - order = [ - "DuckDuckGoo" - "Googlee" - "Wikipedia" - "YouTube" - "Nix Packages" - "Nix Options" - "Arch Wiki" - "Github" - ]; - }; - - bookmarks = {}; - - settings = { - "browser.aboutConfig.showWarning" = false; - "browser.bookmarks.addedImportButton" = false; - "browser.newtabpage.enabled" = false; - "browser.preferences.moreFromMozilla" = false; - "browser.shell.checkDefaultBrowser" = false; - "browser.startup.blankWindow" = true; - "browser.startup.page" = 3; - "browser.tabs.closeWindowWithLastTab" = true; - "browser.tabs.opentabfor.middleclick" = false; - "browser.toolbars.bookmarks.visibility" = "never"; - "browser.translation.enable" = false; - "dom.security.https_only_mode" = true; - "extensions.pocket.enabled" = false; - "gfx.webrender.all" = true; - "identity.fxaccounts.enabled" = false; - "media.cache_readhead_limit" = 9999; - "media.cache_resume_threshold" = 9999; - "medai.ffmpeg.vaapi.enabled" = true; - "media.videocontrols.picture-in-picture.enabled" = false; - "signon.rememberSignons" = false; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - }; - - extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ - bitwarden - sponsorblock - ublock-origin - pronoundb - youtube-nonstop - enhancer-for-youtube - firefox-color - purpleadblock + search = { + default = "DuckDuckGoo"; + privateDefault = "DuckDuckGoo"; + engines = { + "DuckDuckGo".metaData.hidden = true; + "Google".metaData.hidden = true; + "Amazon.com".metaData.hidden = true; + "Bing".metaData.hidden = true; + "Wikipedia (en)".metaData.hidden = true; + "DuckDuckGoo" = { + urls = [ + { + template = "https://duckduckgo.com/"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + ]; + } ]; - - userChrome = '' - #TabsToolbar-customization-target { visibility: collapse !important; } - ''; + definedAliases = ["@ddg"]; + }; + "Googlee" = { + urls = [ + { + template = "https://google.com/search"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@g"]; + }; + "Wikipedia" = { + urls = [ + { + template = "https://en.wikipedia.org/wiki/Special:Search"; + params = [ + { + name = "search"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@wiki"]; + }; + "YouTube" = { + urls = [ + { + template = "https://youtube.com/results"; + params = [ + { + name = "search_query"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@yt"]; + }; + "Nix Packages" = { + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "channel"; + value = "unstable"; + } + { + name = "type"; + value = "packages"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@np"]; + }; + "Nix Options" = { + urls = [ + { + template = "https://search.nixos.org/options"; + params = [ + { + name = "channel"; + value = "unstable"; + } + { + name = "type"; + value = "packages"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + definedAliases = ["@no"]; + }; + "Arch Wiki" = { + urls = [ + { + template = "https://wiki.archlinux.org/index.php"; + params = [ + { + name = "search"; + value = "{searchTerms}"; + } + { + name = "fulltext"; + value = "1"; + } + ]; + } + ]; + definedAliases = ["@aw"]; + }; + "Github" = { + urls = [ + { + template = "https://github.com/search"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + { + name = "type"; + value = "repositories"; + } + ]; + } + ]; + definedAliases = ["@gh"]; }; }; + force = true; + order = [ + "DuckDuckGoo" + "Googlee" + "Wikipedia" + "YouTube" + "Nix Packages" + "Nix Options" + "Arch Wiki" + "Github" + ]; }; + + bookmarks = {}; + + settings = { + "browser.aboutConfig.showWarning" = false; + "browser.bookmarks.addedImportButton" = false; + "browser.newtabpage.enabled" = false; + "browser.preferences.moreFromMozilla" = false; + "browser.shell.checkDefaultBrowser" = false; + "browser.startup.blankWindow" = true; + "browser.startup.page" = 3; + "browser.tabs.closeWindowWithLastTab" = true; + "browser.tabs.opentabfor.middleclick" = false; + "browser.toolbars.bookmarks.visibility" = "never"; + "browser.translation.enable" = false; + "dom.security.https_only_mode" = true; + "extensions.pocket.enabled" = false; + "gfx.webrender.all" = true; + "identity.fxaccounts.enabled" = false; + "media.cache_readhead_limit" = 9999; + "media.cache_resume_threshold" = 9999; + "medai.ffmpeg.vaapi.enabled" = true; + "media.videocontrols.picture-in-picture.enabled" = false; + "signon.rememberSignons" = false; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + }; + + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ + bitwarden + sponsorblock + ublock-origin + pronoundb + youtube-nonstop + enhancer-for-youtube + firefox-color + purpleadblock + ]; + + userChrome = '' + #TabsToolbar-customization-target { visibility: collapse !important; } + ''; }; - } + }; +} diff --git a/modules/apps/media.nix b/modules/apps/media.nix deleted file mode 100644 index c045996..0000000 --- a/modules/apps/media.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config) conf; -in - mkIf (conf.host != "server") { - home-manager.users.${conf.username} = { - home.packages = with pkgs; [ - loupe - spotify - amberol - ]; - - programs.mpv = { - enable = true; - }; - }; - } diff --git a/modules/apps/programs.nix b/modules/apps/programs.nix deleted file mode 100644 index f3b3b59..0000000 --- a/modules/apps/programs.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config) conf; - mkXwlWrapper = import ../niri/xwl-wrapper.nix; - time = pkgs.makeDesktopItem { - name = "peaclock-desktop"; - desktopName = "Time"; - exec = "alacritty -e ${pkgs.peaclock}/bin/peaclock"; - }; -in - mkIf (conf.host != "server") { - services = { - # Needed for some features in nautilus such as auto-mounting and trash - gvfs.enable = true; - }; - - home-manager.users.${conf.username} = { - home.packages = with pkgs; - [ - signal-desktop - vesktop - snapshot - nautilus - inkscape - libresprite - # blender - gnome-disk-utility - fragments - element-desktop - tor-browser - libreoffice-qt6 - chromium - peaclock - fractal - element-desktop - papers - ] - ++ [ - time - (mkXwlWrapper { - pkgs = pkgs; - name = "Prusa"; - pkg = "prusa-slicer"; - }) - (mkXwlWrapper { - pkgs = pkgs; - name = "Vial"; - pkg = "vial"; - }) - ]; - - home.file = { - ".config/vesktop/settings.json" = { - source = ./vesktop.conf.json; - }; - ".config/vesktop/settings/settings.json" = { - source = ./vencord.conf.json; - }; - }; - - programs.pandoc = { - enable = true; - }; - - programs.thunderbird = { - enable = true; - profiles = { - "default" = { - isDefault = true; - }; - }; - }; - - programs.alacritty = { - enable = true; - settings = import ./alacritty.conf.nix {config = config;}; - }; - }; - } diff --git a/modules/apps/themes.nix b/modules/apps/themes.nix deleted file mode 100644 index 58a4d9b..0000000 --- a/modules/apps/themes.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config) conf; -in - mkIf (conf.host != "server") { - home-manager.users.${conf.username} = { - home.packages = with pkgs; [ - adwaita-icon-theme - adwaita-qt - adwaita-qt6 - ]; - - qt = { - enable = true; - platformTheme.name = "adwaita"; - style.name = "adwaita-dark"; - }; - - gtk = { - enable = true; - gtk4.extraConfig = { - gtk-application-prefer-dark-theme = true; - }; - gtk3.extraConfig = { - gtk-application-prefer-dark-theme = true; - }; - gtk2.extraConfig = "gtk-application-prefer-dark-theme=1\n"; - theme.name = "Adwaita Dark"; - }; - - dconf = { - enable = true; - settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - }; - }; - }; - - home.pointerCursor = let - getFrom = url: hash: name: { - gtk.enable = true; - x11.enable = true; - name = name; - size = 24; - package = pkgs.runCommand "moveUp" {} '' - mkdir -p $out/share/icons - ln -s ${pkgs.fetchzip { - url = url; - hash = hash; - }} $out/share/icons/${name} - ''; - }; - in - getFrom "https://github.com/rose-pine/cursor/releases/download/v1.1.0/BreezeX-RosePine-Linux.tar.xz" "sha256-t5xwAPGhuQUfGThedLsmtZEEp1Ljjo3Udhd5Ql3O67c=" "BreezX-RosePine-Linux"; - }; - }