Compare commits

..

10 Commits

Author SHA1 Message Date
7ed6185b1d Changed url of pam-fprint-grosshack input 2026-04-08 11:49:51 +02:00
3d751291ab Hardened firefox and set default search engine to self hosted searxng 2026-04-08 11:34:14 +02:00
594e078929 Added lossless cut 2026-04-08 09:49:36 +02:00
dc4ff6d8d2 Changed grub timeout to 5 sec and disabled ollama service 2026-04-08 09:23:09 +02:00
b341ca2c87 Renamed 'firefox-home' module to only 'home' 2026-03-26 10:24:02 +01:00
762bab2c0b Moved Firefox config to its own folder in modules
Added youtube shorts blocker extension to firefox
2026-03-26 10:20:28 +01:00
0f1d51c246 Removed Zen Browser 2026-03-26 10:07:36 +01:00
b953cdb4be Fixed SDDM fingerprint not working.
- Added a new custom flake input of pam_fprintd_grosshack so it accepts either password or fingerprint
2026-03-25 11:16:30 +01:00
cf1470cb63 Added Neovim Plugins:
- Remenber where you exited file
- Limited treesitter header context
- Added autocompletion
2026-03-24 09:30:30 +01:00
4962c1bb03 Plasma manager now longer overrides everything. New aliases for searching plasma settings differences 2026-03-24 09:22:18 +01:00
16 changed files with 330 additions and 264 deletions

83
flake.lock generated
View File

@ -261,27 +261,6 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_2": {
"inputs": {
"nixpkgs": [
"zen-browser",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772330611,
"narHash": "sha256-UZjPc/d5XRxvjDbk4veAO4XFdvx6BUum2l40V688Xq8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "58fd7ff0eec2cda43e705c4c0585729ec471d400",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"niri": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
@ -465,6 +444,43 @@
"type": "github" "type": "github"
} }
}, },
"pam-fprint-grosshack": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"pam-fprint-src": "pam-fprint-src"
},
"locked": {
"lastModified": 1774432303,
"narHash": "sha256-IdsKBu1HV1mYJMVuAL0GJiWeEkMrdW691aW8D6Zr15I=",
"ref": "refs/heads/main",
"rev": "7ad351f85a92fee40806cb81777430c33499be41",
"revCount": 1,
"type": "git",
"url": "https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git"
},
"original": {
"type": "git",
"url": "https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git"
}
},
"pam-fprint-src": {
"flake": false,
"locked": {
"lastModified": 1658952526,
"narHash": "sha256-obczZbf/oH4xGaVvp3y3ZyDdYhZnxlCWvL0irgEYIi0=",
"owner": "mishakmak",
"repo": "pam-fprint-grosshack",
"rev": "45b42524fb5783e1e555067743d7e0f70d27888a",
"type": "gitlab"
},
"original": {
"owner": "mishakmak",
"repo": "pam-fprint-grosshack",
"type": "gitlab"
}
},
"plasma-manager": { "plasma-manager": {
"inputs": { "inputs": {
"home-manager": [ "home-manager": [
@ -518,10 +534,10 @@
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixvim": "nixvim", "nixvim": "nixvim",
"pam-fprint-grosshack": "pam-fprint-grosshack",
"plasma-manager": "plasma-manager", "plasma-manager": "plasma-manager",
"quickshell": "quickshell", "quickshell": "quickshell",
"stylix": "stylix", "stylix": "stylix"
"zen-browser": "zen-browser"
} }
}, },
"rust-analyzer-src": { "rust-analyzer-src": {
@ -719,27 +735,6 @@
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"type": "github" "type": "github"
} }
},
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1773290887,
"narHash": "sha256-L1yMYmFffHfZNP+hKJGRBmrFKkn/VDhu7jEbVftBQuM=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "9346698c4562819f61b4e5097151ec0b17729fab",
"type": "github"
},
"original": {
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -15,9 +15,6 @@
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
zen-browser.url = "github:0xc000022070/zen-browser-flake";
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
#stylix.url = "github:nix-community/stylix/"; #stylix.url = "github:nix-community/stylix/";
stylix.url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently stylix.url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently
stylix.inputs.nixpkgs.follows = "nixpkgs"; stylix.inputs.nixpkgs.follows = "nixpkgs";
@ -42,6 +39,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
pam-fprint-grosshack = {
url = "git+https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-flatpak.url = "github:gmodena/nix-flatpak"; nix-flatpak.url = "github:gmodena/nix-flatpak";
grub2-themes.url = "github:vinceliuice/grub2-themes"; grub2-themes.url = "github:vinceliuice/grub2-themes";
@ -50,12 +52,12 @@
outputs = inputs @ { outputs = inputs @ {
nixpkgs, nixpkgs,
alejandra, alejandra,
pam-fprint-grosshack,
home-manager, home-manager,
plasma-manager, plasma-manager,
nixos-hardware, nixos-hardware,
stylix, stylix,
niri, niri,
zen-browser,
grub2-themes, grub2-themes,
nix-flatpak, nix-flatpak,
... ...
@ -81,6 +83,7 @@
inherit system; inherit system;
inherit project; inherit project;
inherit alejandra; inherit alejandra;
pam-fprint-grosshack-pkg = pam-fprint-grosshack.packages.${system}.default;
host = hostname; host = hostname;
}; };
modules = modules =

View File

@ -13,6 +13,7 @@
host, host,
version, version,
system, system,
pam-fprint-grosshack-pkg,
... ...
}: { }: {
#Assign Swap to the PC #Assign Swap to the PC
@ -27,7 +28,7 @@
inputs.nix-flatpak.nixosModules.nix-flatpak inputs.nix-flatpak.nixosModules.nix-flatpak
./hardware-configuration.nix ./hardware-configuration.nix
./firefox.nix ./firefox
./boot-splash.nix ./boot-splash.nix
./zsh.nix ./zsh.nix
./neovim ./neovim
@ -61,7 +62,7 @@
footer = true; footer = true;
}; };
timeout = 10; timeout = 5;
}; };
}; };
@ -123,7 +124,7 @@
# List services that you want to enable: # List services that you want to enable:
services = { services = {
ollama = { ollama = {
enable = true; enable = false;
# Optional: load models on startup # Optional: load models on startup
#loadModels = [ ... ]; #loadModels = [ ... ];
}; };
@ -313,14 +314,28 @@
sudo.wheelNeedsPassword = false; sudo.wheelNeedsPassword = false;
pam.services = { pam.services = {
sddm.fprintAuth = false; #Because of the bug with 30 seconds on sddm login
sddm-autologin.fprintAuth = false; #Same as above
login.fprintAuth = false; login.fprintAuth = false;
sudo.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408 sudo.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
kscreenlocker.fprintAuth = true; kscreenlocker.fprintAuth = true;
polkit-1.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408 polkit-1.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
kde.fprintAuth = false; kde.fprintAuth = false;
hyprlock = {}; hyprlock = {};
sddm = {
fprintAuth = false; # prevent NixOS from adding its own pam_fprintd block
text = lib.mkForce ''
auth sufficient ${pam-fprint-grosshack-pkg}/lib/security/pam_fprintd_grosshack.so
auth sufficient pam_unix.so try_first_pass nullok
auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so
account required pam_unix.so
password required pam_deny.so
session required pam_unix.so
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
'';
};
}; };
}; };

View File

@ -1,17 +0,0 @@
{username, ...}: {
programs.firefox = {
enable = true;
profiles = {
"${username}" = {
extensions.force = true;
};
};
};
systemd.user.services."firefox-autostart" = {
serviceConfig = {
ExecStart = "";
ExecStop = "";
};
};
}

View File

@ -1,112 +0,0 @@
{
config,
pkgs,
...
}: let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in {
home-manager.sharedModules = [
./firefox-home.nix
];
programs = {
firefox = {
enable = true;
languagePacks = ["de" "en-US"];
/*
---- POLICIES ----
*/
# Check about:policies#documentation for options.
policies = {
PasswordManagerEnabled = false;
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
#DisableFirefoxAccounts = true;
#DisableAccounts = true;
#DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/*
---- EXTENSIONS ----
*/
# Check about:support for extension/add-on ID strings.
# Valid strings for installation_mode are "allowed", "blocked",
# "force_installed" and "normal_installed".
# How to: https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
#(extension "dearrow" "deArrow@ajay.app")
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
#(extension "tabliss" "extension@tabliss.io")
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
#(extension "react-devtools" "@react-devtools")
(extension "keepa" "amptra@keepa.com")
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
(extension "darkreader" "addon@darkreader.org")
];
/*
---- PREFERENCES ----
*/
# Check about:config for options.
Preferences = {
"browser.contentblocking.category" = {
Value = "strict";
Status = "locked";
};
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false;
#"browser.formfill.enable" = lock-false;
#"browser.search.suggest.enabled" = lock-false;
#"browser.search.suggest.enabled.private" = lock-false;
#"browser.urlbar.suggest.searches" = lock-false;
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
};
};
};
};
}

171
modules/firefox/default.nix Normal file
View File

@ -0,0 +1,171 @@
{
config,
pkgs,
...
}: let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in {
home-manager.sharedModules = [
./home.nix
];
programs = {
firefox = {
enable = true;
languagePacks = ["de" "en-US"];
/*
---- POLICIES ----
*/
# Check about:policies#documentation for options.
policies = {
PasswordManagerEnabled = false;
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
#DisableFirefoxAccounts = true;
#DisableAccounts = true;
#DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/*
---- EXTENSIONS ----
*/
# Check about:support for extension/add-on ID strings.
# Valid strings for installation_mode are "allowed", "blocked",
# "force_installed" and "normal_installed".
# How to: https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "force_installed";
};
};
in
listToAttrs [
#(extension "{name in url}" "{about:support Add-ons on }")
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
(extension "keepa" "amptra@keepa.com")
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
(extension "darkreader" "addon@darkreader.org")
(extension "youtube-shorts-block" "{34daeb50-c2d2-4f14-886a-7160b24d66a4}")
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
];
/*
---- PREFERENCES ----
*/
# Check about:config for options.
Preferences = {
"browser.contentblocking.category" = {
Value = "strict"; # strictest tracker/ad blocking mode
Status = "locked";
};
"extensions.pocket.enabled" = lock-false; # disables Pocket integration
"extensions.screenshots.disabled" = lock-true; # disables Firefox Screenshots
"browser.topsites.contile.enabled" = lock-false; # disables sponsored tiles on newtab
"browser.formfill.enable" = lock-false; # disables form autofill (prevents local data leakage)
"browser.search.suggest.enabled" = lock-false; # disables search suggestions in normal mode
"browser.search.suggest.enabled.private" = lock-false; # disables search suggestions in private mode
"browser.urlbar.suggest.searches" = lock-false; # disables search suggestions in address bar dropdown
"browser.urlbar.showSearchSuggestionsFirst" = lock-false; # hides search suggestions in address bar
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; # disables sponsored stories on newtab
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false; # disables news snippets on newtab
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; # removes Pocket from highlights
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; # removes bookmarks from highlights
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; # removes downloads from highlights
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; # removes visited sites from highlights
"browser.newtabpage.activity-stream.showSponsored" = lock-false; # disables all sponsored content
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false; # disables system-level sponsored content
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; # disables sponsored top sites
"privacy.resistFingerprinting" = lock-true; # spoofs/normalizes fingerprinting signals (screen, timezone, fonts)
"privacy.firstparty.isolate" = lock-true; # isolates cookies/storage per top-level domain (breaks cross-site tracking)
"network.dns.disablePrefetch" = lock-true; # stops speculative DNS lookups for unclicked links
"network.predictor.enabled" = lock-false; # disables ML-based prefetch predictions
"network.prefetch-next" = lock-false; # disables link-hover prefetching
"toolkit.telemetry.enabled" = lock-false; # disables core telemetry reporting
"toolkit.telemetry.unified" = lock-false; # disables unified telemetry pipeline
"datareporting.healthreport.uploadEnabled" = lock-false; # disables Firefox Health Report uploads
"dom.battery.enabled" = lock-false; # blocks Battery Status API fingerprinting
"dom.gamepad.enabled" = lock-false; # blocks Gamepad API fingerprinting
"browser.startup.homepage" = {
Value = "about:blank";
Status = "locked";
};
"browser.startup.page" = {
Value = 0;
Status = "locked";
}; # 0=blank, 3=homepage
"browser.startup.homepage_override.mstone" = {
Value = "ignore";
Status = "locked";
};
# HTTPSonly / mixedcontent
"dom.security.https_only_mode" = {
Value = true;
Status = "locked";
};
"dom.security.https_only_mode_ever_enabled" = {
Value = true;
Status = "locked";
};
# Referrer / headers tightening
"network.http.referer.XOriginPolicy" = {
Value = 2;
Status = "locked";
}; # strict crossorigin
"network.http.referer.XOriginTrimmingPolicy" = {
Value = 2;
Status = "locked";
};
# DNSoverHTTPS (if you want enforced DoH)
"network.trr.mode" = {
Value = 2;
Status = "locked";
}; # 2=prefer TRR
"network.trr.custom_uri" = {
Value = "https://dns.quad9.net/dns-query";
Status = "locked";
};
# Disable various Web APIs that can leak or be abused
"dom.webnotifications.enabled" = lock-false; # disable desktop notifications
"media.navigator.enabled" = lock-false; # disable getUserMedia permission prompts
"media.webrtc.legacy_global_callback" = lock-false;
# Disable geolocation / sensors
"geo.enabled" = lock-false;
"device.sensors.enabled" = lock-false;
};
};
};
};
}

44
modules/firefox/home.nix Normal file
View File

@ -0,0 +1,44 @@
{username, ...}: {
programs.firefox = {
enable = true;
profiles = {
"${username}" = {
extensions.force = true;
#Create multiple containers, like "work" "social media" ..., for cookies to reside in so they dont cross leak
#containers.force = true;
search = {
force = true;
default = "SearXNG";
order = ["SearXNG"];
engines = {
"SearXNG" = {
name = "SearXNG";
urls = [
{
template = "https://searxng.cookiee.org/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
iconMapObj."16" = "https://searxng.cookiee.org/favicon.ico";
definedAliases = ["@sx"];
};
};
};
};
};
};
systemd.user.services."firefox-autostart" = {
serviceConfig = {
ExecStart = "";
ExecStop = "";
};
};
}

View File

@ -28,9 +28,6 @@
]; ];
imports = [ imports = [
inputs.zen-browser.homeModules.beta
# or inputs.zen-browser.homeModules.twilight
# or inputs.zen-browser.homeModules.twilight-official
#./neovim-home.nix #./neovim-home.nix
./desktop-entries.nix ./desktop-entries.nix
]; ];
@ -78,72 +75,5 @@
}; };
}; };
}; };
zen-browser = {
enable = false;
#package = inputs.zen-browser.packages.${pkgs.system}.default;
profiles = {
${username} = {
id = 0;
name = username;
# profileAvatarPath = "chrome://browser/content/zen-avatars/avatar-57.svg";
path = "${username}.default";
isDefault = true;
settings = {
};
};
};
policies = {
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
PasswordManagerEnabled = false;
NoDefaultBookmarks = true;
DisableAppUpdate = true;
DisableFirefoxStudies = true;
DontCheckDefaultBrowser = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
OfferToSaveLogins = false;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "force_installed";
};
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
#(extension "dearrow" "deArrow@ajay.app")
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
#(extension "tabliss" "extension@tabliss.io")
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
#(extension "react-devtools" "@react-devtools")
(extension "keepa" "amptra@keepa.com")
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
];
# To add additional extensions, find it on addons.mozilla.org, find
# the short ID in the url (like https=//addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
# Then, download the XPI by filling it in to the install_url template, unzip it,
# run `jq .browser_specific_settings.gecko.id manifest.json` or
# `jq .applications.gecko.id manifest.json` to get the UUID
Preferences = {
#"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.sessionstore.resume_session_once" = false;
};
};
};
}; #End of programs = {}; }; #End of programs = {};
} }

View File

@ -65,6 +65,8 @@
]; ];
plugins = { plugins = {
# Remeber where you left the file last time
lastplace.enable = true;
# Statusline at the bottom of the screen # Statusline at the bottom of the screen
lualine.enable = true; lualine.enable = true;
# Tab bar at the top of the screen # Tab bar at the top of the screen
@ -84,7 +86,40 @@
}; };
}; };
# Shows the current function/class context pinned at the top of the buffer # Shows the current function/class context pinned at the top of the buffer
treesitter-context.enable = true; treesitter-context = {
enable = true;
settings = {
# Cap the context header
max_lines = 4;
# When over the limit, drop outermost context
trim_scope = "outer";
# Only show context in tall-enough windows
min_window_height = 20;
};
};
# Provides autocompletion suggestions
blink-cmp = {
enable = true;
settings = {
keymap.preset = "default"; # Tab/S-Tab to navigate, Enter to confirm
sources.default = ["lsp" "path" "snippets" "buffer"];
completion = {
documentation.auto_show = true;
ghost_text.enabled = true; # inline preview of the top suggestion
};
};
};
lsp = {
enable = true;
servers = {
nixd.enable = true; # Nix
ts_ls.enable = true; # TypeScript/JavaScript
# ... add more as needed
};
};
# Text objects based on treesitter nodes (e.g. select a function body) # Text objects based on treesitter nodes (e.g. select a function body)
treesitter-textobjects.enable = true; treesitter-textobjects.enable = true;
# Auto-closes and renames HTML/JSX tags using treesitter # Auto-closes and renames HTML/JSX tags using treesitter

View File

@ -40,6 +40,7 @@
wineWow64Packages.stagingFull wineWow64Packages.stagingFull
winetricks winetricks
wasistlos #Whatsapp wasistlos #Whatsapp
losslesscut-bin #Lossless cut for quckly cutting videos
#obs-studio #Screen Recorder #obs-studio #Screen Recorder
gparted #Disk partition Manager gparted #Disk partition Manager
#rustdesk #Remote Desktop Client #rustdesk #Remote Desktop Client

View File

@ -21,7 +21,6 @@
qt.enable = true; qt.enable = true;
qt.platform = "kde"; qt.platform = "kde";
#kde.enable = false; #kde.enable = false;
zen-browser.profileNames = ["${username}"];
}; };
}; };
} }

View File

@ -26,7 +26,8 @@ alias nix-clear="sudo nix-store --gc"
#KDE Plasma Specific #KDE Plasma Specific
#----- #-----
alias kde-theme-apply="source $HOME/NixOS/plasma/konsave.sh" alias plasma-snap="cp ~/.config/plasma-org.kde.plasma.desktop-appletsrc ~/appletsrc.snap"
alias plasma-diff="diff ~/appletsrc.snap ~/.config/plasma-org.kde.plasma.desktop-appletsrc"
#LaTeX Commands #LaTeX Commands
alias makepdf="makeglossaries main && pdflatex main.tex" alias makepdf="makeglossaries main && pdflatex main.tex"

View File

@ -9,7 +9,7 @@
programs = { programs = {
plasma = { plasma = {
enable = true; enable = true;
overrideConfig = true; overrideConfig = false;
input.mice = [ input.mice = [
{ {

View File

@ -8,10 +8,9 @@
}: { }: {
programs = { programs = {
plasma = { plasma = {
overrideConfig = true;
panels = [ panels = [
{ {
screen = "all";
height = 44; height = 44;
location = "bottom"; location = "bottom";
alignment = "center"; alignment = "center";
@ -111,7 +110,8 @@
theme = "Win10OS-cursors"; theme = "Win10OS-cursors";
size = 24; size = 24;
}; };
wallpaper = /home/${username}/${project}/other/wallpaper1.png; # Do not use wallpaper option here as it causes issues! Use it in configFile
# wallpaper = /home/${username}/${project}/other/wallpaper1.png;
soundTheme = "ocean"; soundTheme = "ocean";
iconTheme = "We10X"; iconTheme = "We10X";
splashScreen = { splashScreen = {
@ -122,6 +122,9 @@
theme = "__aurorae__svg__Win11OS-dark"; theme = "__aurorae__svg__Win11OS-dark";
}; };
}; };
configFile = {
plasmarc.Wallpapers.usersWallpapers = "/home/cookiez/NixOS/other/wallpaper1.png";
};
}; };
}; };
} }

View File

@ -8,10 +8,9 @@
}: { }: {
programs = { programs = {
plasma = { plasma = {
overrideConfig = true;
panels = [ panels = [
{ {
screen = "all";
height = 44; height = 44;
location = "top"; location = "top";
alignment = "center"; alignment = "center";
@ -134,7 +133,8 @@
theme = "Breeze_Light"; theme = "Breeze_Light";
size = 24; size = 24;
}; };
wallpaper = /home/${username}/${project}/other/wallpaper3.png; # Do not use wallpaper option here as it causes issues! Use it in configFile
# wallpaper = /home/${username}/${project}/other/wallpaper3.png;
soundTheme = "freedesktop"; soundTheme = "freedesktop";
iconTheme = "Breeze-LaCapitaine-apps"; iconTheme = "Breeze-LaCapitaine-apps";
splashScreen = { splashScreen = {

View File

@ -23,8 +23,6 @@
in { in {
programs = { programs = {
plasma = { plasma = {
overrideConfig = true;
powerdevil = { powerdevil = {
AC = { AC = {
powerProfile = selectedProfile.AC.powerProfile; powerProfile = selectedProfile.AC.powerProfile;