restructure apps

This commit is contained in:
twoneis 2025-03-09 16:40:32 +01:00
parent 5cbc2cc675
commit 2f24f85e44
8 changed files with 339 additions and 407 deletions

View file

@ -32,7 +32,6 @@
hardware = {
enableRedistributableFirmware = true;
enableAllFirmware = true;
cpu.amd.updateMicrocode = true;
};
}

View file

@ -1,4 +1,4 @@
{config, ...}: let
config: let
inherit (config) theme;
in {
# Rose Pine

16
modules/apps/cursor.nix Normal file
View file

@ -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"

View file

@ -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;
};
};
};
}

View file

@ -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; }
'';
};
}
};
}

View file

@ -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;
};
};
}

View file

@ -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;};
};
};
}

View file

@ -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";
};
}