[feat] Alejandra formatting

This commit is contained in:
uttarayan21
2024-03-21 21:35:51 +05:30
parent e8434fadf5
commit d5dc5a79d3
33 changed files with 699 additions and 589 deletions

View File

@@ -1,9 +1,12 @@
{ device, pkgs, ... }: { {
device,
pkgs,
...
}: {
programs.firefox = { programs.firefox = {
enable = device.isLinux; enable = device.isLinux;
profiles.default = { profiles.default = {
userChrome = userChrome = let
let
csshacks = pkgs.fetchFromGitHub { csshacks = pkgs.fetchFromGitHub {
owner = "MrOtherGuy"; owner = "MrOtherGuy";
repo = "firefox-csshacks"; repo = "firefox-csshacks";
@@ -11,7 +14,9 @@
sha256 = "sha256-XJ+MTEADzOsCIh0I8EAxbtIpDHfMJsN68sKBy7/1l60="; sha256 = "sha256-XJ+MTEADzOsCIh0I8EAxbtIpDHfMJsN68sKBy7/1l60=";
}; };
in in
/* css */ /*
css
*/
'' ''
/* @import url(${csshacks}/chrome/toolbars_below_content.css); */ /* @import url(${csshacks}/chrome/toolbars_below_content.css); */
/* @import url(${csshacks}/chrome/scrollable_menupopups.css); */ /* @import url(${csshacks}/chrome/scrollable_menupopups.css); */
@@ -27,8 +32,7 @@
policies = { policies = {
ExtensionSettings = { ExtensionSettings = {
"uBlock0@raymondhill.net" = { "uBlock0@raymondhill.net" = {
install_url = install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
"https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed"; installation_mode = "force_installed";
}; };
}; };

View File

@@ -4,7 +4,8 @@
enable = true; enable = true;
config = { config = {
urls = { urls = {
categories = [{ categories = [
{
name = "Rust"; name = "Rust";
desc = "Stuff related to the rust programming language"; desc = "Stuff related to the rust programming language";
subscriptions = [ subscriptions = [
@@ -35,9 +36,9 @@
url = "https://old.reddit.com/r/nixos/.rss"; url = "https://old.reddit.com/r/nixos/.rss";
} }
]; ];
}]; }
}; ];
}; };
}; };
};
} }

View File

@@ -1,5 +1,13 @@
{ inputs, config, pkgs, lib, device, ... }: { {
imports = [ inputs,
config,
pkgs,
lib,
device,
...
}: {
imports =
[
inputs.nix-index-database.hmModules.nix-index inputs.nix-index-database.hmModules.nix-index
./tmux.nix ./tmux.nix
./wezterm.nix ./wezterm.nix
@@ -7,10 +15,12 @@
./goread.nix ./goread.nix
./ncmpcpp.nix ./ncmpcpp.nix
# ./neomutt.nix # ./neomutt.nix
] ++ lib.optionals device.isLinux [ ../linux ]; ]
++ lib.optionals device.isLinux [../linux];
home.packages = with pkgs; home.packages = with pkgs;
[ [
sony-headphones-client
sd sd
go go
p7zip p7zip
@@ -38,7 +48,7 @@
macchina macchina
ripgrep ripgrep
fd fd
nixfmt alejandra
dust dust
cachix cachix
rustup rustup
@@ -52,7 +62,8 @@
pfetch-rs pfetch-rs
psst psst
abaddon abaddon
] ++ lib.optionals device.isLinux [ ]
++ lib.optionals device.isLinux [
mpv mpv
catppuccinThemes.gtk catppuccinThemes.gtk
catppuccinThemes.papirus-folders catppuccinThemes.papirus-folders
@@ -74,7 +85,8 @@
lsof lsof
wl-clipboard wl-clipboard
ncpamixer ncpamixer
] ++ lib.optionals device.isMac [ ]; ]
++ lib.optionals device.isMac [];
xdg.enable = true; xdg.enable = true;
xdg.userDirs = { xdg.userDirs = {
@@ -171,9 +183,10 @@
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
enableNushellIntegration = true; enableNushellIntegration = true;
settings = settings = let
let flavour = "mocha"; # Replace with your preferred palette flavour = "mocha"; # Replace with your preferred palette
in { in
{
# Check https://starship.rs/config/#prompt # Check https://starship.rs/config/#prompt
format = "$all$character"; format = "$all$character";
palette = "catppuccin_${flavour}"; palette = "catppuccin_${flavour}";
@@ -186,7 +199,8 @@
truncation_length = 4; truncation_length = 4;
style = "bold lavender"; style = "bold lavender";
}; };
} // builtins.fromTOML (builtins.readFile }
// builtins.fromTOML (builtins.readFile
(pkgs.catppuccinThemes.starship + /palettes/${flavour}.toml)); (pkgs.catppuccinThemes.starship + /palettes/${flavour}.toml));
}; };
eza = { eza = {
@@ -229,7 +243,9 @@
email = "uttarayan21@gmail.com"; email = "uttarayan21@gmail.com";
base_url = "https://pass.uttarayan.me"; base_url = "https://pass.uttarayan.me";
pinentry = pinentry =
if device.isMac then pkgs.pinentry_mac else pkgs.pinentry-gnome3; if device.isMac
then pkgs.pinentry_mac
else pkgs.pinentry-gnome3;
}; };
}; };
@@ -251,10 +267,9 @@
home = { home = {
username = device.user; username = device.user;
homeDirectory = homeDirectory =
if device.isMac then if device.isMac
lib.mkForce "/Users/${device.user}" then lib.mkForce "/Users/${device.user}"
else else lib.mkForce "/home/${device.user}";
lib.mkForce "/home/${device.user}";
stateVersion = "23.11"; stateVersion = "23.11";
@@ -266,9 +281,11 @@
EDITOR = "nvim"; EDITOR = "nvim";
SHELL = "${pkgs.nushellFull}/bin/nu"; SHELL = "${pkgs.nushellFull}/bin/nu";
CARGO_TARGET_DIR = "${config.xdg.cacheHome}/cargo/target"; CARGO_TARGET_DIR = "${config.xdg.cacheHome}/cargo/target";
BROWSER = if device.isMac then "open" else "xdg-open"; BROWSER =
if device.isMac
then "open"
else "xdg-open";
}; };
sessionPath = ["${config.home.homeDirectory}/.cargo/bin"]; sessionPath = ["${config.home.homeDirectory}/.cargo/bin"];
}; };
} }

View File

@@ -1,7 +1,8 @@
{pkgs, ...}: { {pkgs, ...}: {
programs.ncmpcpp = { programs.ncmpcpp = {
enable = true; enable = true;
bindings = pkgs.lib.attrsets.mapAttrsToList (key: value: { bindings =
pkgs.lib.attrsets.mapAttrsToList (key: value: {
key = key; key = key;
command = value; command = value;
}) { }) {

View File

@@ -14,19 +14,16 @@
} }
{ {
title = "Jon Gjengset's YouTube"; title = "Jon Gjengset's YouTube";
url = url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC_iD0xppBwwsrM9DegC5cQQ";
"https://www.youtube.com/feeds/videos.xml?channel_id=UC_iD0xppBwwsrM9DegC5cQQ";
tags = ["rust" "youtube"]; tags = ["rust" "youtube"];
} }
]; ];
extraConfig = extraConfig = let
let
dracula = builtins.fetchurl { dracula = builtins.fetchurl {
url = "https://raw.githubusercontent.com/dracula/newsboat/main/newsboat"; url = "https://raw.githubusercontent.com/dracula/newsboat/main/newsboat";
sha256 = "sha256:08b00ilc5zk5fkzqqd6aghcpya3d00s9kvv65b8c50rg7ikm88xr"; sha256 = "sha256:08b00ilc5zk5fkzqqd6aghcpya3d00s9kvv65b8c50rg7ikm88xr";
}; };
in in ''
''
include ${dracula} include ${dracula}
unbind-key g unbind-key g
bind-key g home bind-key g home

View File

@@ -1,4 +1,10 @@
{ pkgs, config, inputs, device, ... }: { {
pkgs,
config,
inputs,
device,
...
}: {
imports = [inputs.nixneovim.nixosModules.default]; imports = [inputs.nixneovim.nixosModules.default];
programs.nixneovim = { programs.nixneovim = {
enable = true; enable = true;
@@ -80,7 +86,9 @@
undofile = true; undofile = true;
}; };
globals = { mapleader = " "; }; globals = {
mapleader = " ";
};
plugins = { plugins = {
lspconfig = { lspconfig = {
enable = true; enable = true;
@@ -89,12 +97,14 @@
nil = { nil = {
enable = true; enable = true;
extraConfig = extraConfig =
/* lua */ # lua
'' ''
settings = { settings = {
['nil'] = { ['nil'] = {
formatting = { formatting = {
command = { "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt" }, -- command = { "$\{pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt" },
-- command = { "$\{pkgs.nixfmt}/bin/nixfmt" },
command = { "${pkgs.alejandra}/bin/alejandra" },
}, },
nix = { nix = {
flake = { flake = {
@@ -113,7 +123,7 @@
sqls = { sqls = {
enable = true; enable = true;
onAttachExtra = onAttachExtra =
/* lua */ # lua
'' ''
require('sqls').on_attach(client, bufnr) require('sqls').on_attach(client, bufnr)
''; '';
@@ -121,7 +131,7 @@
# rust-analyzer.enable = true; # rust-analyzer.enable = true;
}; };
extraLua.pre = extraLua.pre =
/* lua */ # lua
'' ''
local lsp_zero = require'lsp-zero' local lsp_zero = require'lsp-zero'
local lspconfig = require 'lspconfig' local lspconfig = require 'lspconfig'
@@ -163,7 +173,10 @@
enable = true; enable = true;
}; };
}; };
grammars = with pkgs.tree-sitter-grammars; [ tree-sitter-just tree-sitter-norg-meta ]; grammars = with pkgs.tree-sitter-grammars; [
tree-sitter-just
tree-sitter-norg-meta
];
installAllGrammars = true; installAllGrammars = true;
}; };
@@ -174,7 +187,6 @@
# cursorword.enable = true; # cursorword.enable = true;
starter.enable = true; starter.enable = true;
}; };
}; };
colorschemes = { colorschemes = {
catppuccin = { catppuccin = {
@@ -221,18 +233,21 @@
}; };
}; };
extraConfigLua = extraConfigLua = let
let codelldb =
codelldb = if device.isLinux then pkgs.vscode-extensions.vadimcn.vscode-lldb.adapter else null; if device.isLinux
then pkgs.vscode-extensions.vadimcn.vscode-lldb.adapter
else null;
liblldb = liblldb =
if device.isLinux then if device.isLinux
"${codelldb}/lldb/lib/liblldb.so" then "${codelldb}/lldb/lib/liblldb.so"
# else if device.isMac then # else if device.isMac then
# "${codelldb}/lldb/lib/liblldb.dylib" # "${codelldb}/lldb/lib/liblldb.dylib"
else null else null;
;
in in
/* lua */ /*
lua
*/
'' ''
require'neotest'.setup({ require'neotest'.setup({
adapters = { adapters = {
@@ -287,8 +302,7 @@
autoload_configurations = false, autoload_configurations = false,
${pkgs.lib.optionalString device.isLinux '' ${pkgs.lib.optionalString device.isLinux ''
adapter = require'rustaceanvim.config'.get_codelldb_adapter("${codelldb}/bin/codelldb", "${liblldb}") adapter = require'rustaceanvim.config'.get_codelldb_adapter("${codelldb}/bin/codelldb", "${liblldb}")
'' ''}
}
}, },
} }
@@ -441,4 +455,3 @@
package = pkgs.neovim-nightly; package = pkgs.neovim-nightly;
}; };
} }

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: let
let
scratchpad = pkgs.writeShellScript "scratchpad" '' scratchpad = pkgs.writeShellScript "scratchpad" ''
width=''${2:-95%} width=''${2:-95%}
height=''${2:-95%} height=''${2:-95%}

View File

@@ -10,5 +10,4 @@
}; };
}; };
}; };
} }

View File

@@ -2,7 +2,9 @@
programs.wezterm = { programs.wezterm = {
enable = true; enable = true;
extraConfig = extraConfig =
/* lua */ /*
lua
*/
'' ''
local wezterm = require 'wezterm'; local wezterm = require 'wezterm';
return { return {

View File

@@ -1,4 +1,11 @@
{ devices, inputs, overlays, home-manager, nix-darwin, ... }: {
devices,
inputs,
overlays,
home-manager,
nix-darwin,
...
}:
builtins.listToAttrs (builtins.map (device: { builtins.listToAttrs (builtins.map (device: {
name = device.name; name = device.name;
value = nix-darwin.lib.darwinSystem { value = nix-darwin.lib.darwinSystem {
@@ -24,4 +31,5 @@ builtins.listToAttrs (builtins.map (device: {
} }
]; ];
}; };
}) devices) })
devices)

View File

@@ -68,17 +68,16 @@
}; };
}; };
outputs = outputs = {
{ nixpkgs nixpkgs,
, home-manager home-manager,
, nix-darwin nix-darwin,
, flake-utils flake-utils,
, anyrun anyrun,
, nur nur,
, neovim-nightly-overlay neovim-nightly-overlay,
, ... ...
}@inputs: } @ inputs: let
let
config_devices = [ config_devices = [
{ {
name = "mirai"; name = "mirai";
@@ -111,7 +110,9 @@
mkDevice = {device}: { mkDevice = {device}: {
isLinux = !isNull (builtins.match ".*-linux" device.system); isLinux = !isNull (builtins.match ".*-linux" device.system);
isNix = isNix =
if (builtins.hasAttr "isNix" device) then device.isNix else false; if (builtins.hasAttr "isNix" device)
then device.isNix
else false;
isMac = !isNull (builtins.match ".*-darwin" device.system); isMac = !isNull (builtins.match ".*-darwin" device.system);
system = device.system; system = device.system;
name = device.name; name = device.name;
@@ -125,26 +126,26 @@
linux_devices = builtins.filter (x: x.isLinux) devices; linux_devices = builtins.filter (x: x.isLinux) devices;
darwin_devices = builtins.filter (x: x.isMac) devices; darwin_devices = builtins.filter (x: x.isMac) devices;
overlays = import ./overlays.nix { overlays = import ./overlays.nix {inherit inputs;};
inherit inputs; in {
}; nixosConfigurations = let
devices = nixos_devices;
in in
{ import ./nixos/device.nix {
nixosConfigurations =
let devices = nixos_devices;
in import ./nixos/device.nix {
inherit devices inputs nixpkgs home-manager overlays nur; inherit devices inputs nixpkgs home-manager overlays nur;
}; };
darwinConfigurations = darwinConfigurations = let
let devices = darwin_devices; devices = darwin_devices;
in import ./darwin/device.nix { in
import ./darwin/device.nix {
inherit devices inputs nixpkgs home-manager overlays nix-darwin; inherit devices inputs nixpkgs home-manager overlays nix-darwin;
}; };
homeConfigurations = homeConfigurations = let
let devices = linux_devices; devices = linux_devices;
in import ./linux/device.nix { in
import ./linux/device.nix {
inherit devices inputs nixpkgs home-manager overlays; inherit devices inputs nixpkgs home-manager overlays;
}; };
}; };

View File

@@ -1,4 +1,10 @@
{ inputs, pkgs, device, osConfig, ... }: { {
inputs,
pkgs,
device,
osConfig,
...
}: {
imports = [inputs.anyrun.nixosModules.home-manager]; imports = [inputs.anyrun.nixosModules.home-manager];
programs.anyrun = { programs.anyrun = {
enable = true; enable = true;
@@ -26,10 +32,12 @@
extraConfigFiles = { extraConfigFiles = {
"nixos-options.ron".text = let "nixos-options.ron".text = let
nixos-options = pkgs.lib.optionalString device.isNix nixos-options =
pkgs.lib.optionalString device.isNix
osConfig.system.build.manual.optionsJSON osConfig.system.build.manual.optionsJSON
+ "/share/doc/nixos/options.json"; + "/share/doc/nixos/options.json";
hm-options = inputs.home-manager.packages.${pkgs.system}.docs-json hm-options =
inputs.home-manager.packages.${pkgs.system}.docs-json
+ "/share/doc/home-manager/options.json"; + "/share/doc/home-manager/options.json";
# or alternatively if you wish to read any other documentation options, such as home-manager # or alternatively if you wish to read any other documentation options, such as home-manager
# get the docs-json package from the home-manager flake # get the docs-json package from the home-manager flake
@@ -42,7 +50,12 @@
# }; # };
options = builtins.toJSON ({ options = builtins.toJSON ({
":hm" = [hm-options]; ":hm" = [hm-options];
} // (if device.isNix then { ":nix" = [ nixos-options ]; } else { })); }
// (
if device.isNix
then {":nix" = [nixos-options];}
else {}
));
in '' in ''
Config( Config(
options: ${options}, options: ${options},
@@ -56,7 +69,9 @@
) )
''; '';
"websearch.ron".text = "websearch.ron".text =
/* ron */ /*
ron
*/
'' ''
Config( Config(
prefix: "?", prefix: "?",

View File

@@ -1,4 +1,10 @@
{ pkgs, device, nur, inputs, ... }: { {
pkgs,
device,
nur,
inputs,
...
}: {
imports = [ imports = [
../common/firefox.nix ../common/firefox.nix
../linux/hyprland.nix ../linux/hyprland.nix
@@ -9,7 +15,6 @@
../linux/mpd.nix ../linux/mpd.nix
]; ];
services.kdeconnect.enable = true; services.kdeconnect.enable = true;
services.kdeconnect.indicator = true; services.kdeconnect.indicator = true;
services.swayosd.enable = true; services.swayosd.enable = true;

View File

@@ -1,4 +1,10 @@
{ devices, inputs, overlays, home-manager, ... }: {
devices,
inputs,
overlays,
home-manager,
...
}:
builtins.listToAttrs (builtins.map (device: { builtins.listToAttrs (builtins.map (device: {
name = device.user; name = device.user;
value = let value = let
@@ -6,7 +12,8 @@ builtins.listToAttrs (builtins.map (device: {
inherit overlays; inherit overlays;
system = device.system; system = device.system;
}; };
in home-manager.lib.homeManagerConfiguration { in
home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs;
@@ -14,4 +21,5 @@ builtins.listToAttrs (builtins.map (device: {
}; };
modules = [{nixpkgs.config.allowUnfree = true;} ../common/home.nix]; modules = [{nixpkgs.config.allowUnfree = true;} ../common/home.nix];
}; };
}) devices) })
devices)

View File

@@ -1,8 +1,12 @@
{ pkgs, inputs, ... }: { {
pkgs,
inputs,
...
}: {
imports = [../modules/hyprpaper.nix inputs.hyprlock.homeManagerModules.hyprlock]; imports = [../modules/hyprpaper.nix inputs.hyprlock.homeManagerModules.hyprlock];
programs.hyprpaper = programs.hyprpaper = let
let wallpapers = import ../utils/wallhaven.nix { inherit pkgs; }; wallpapers = import ../utils/wallhaven.nix {inherit pkgs;};
in { in {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;

View File

@@ -1,4 +1,8 @@
{ inputs, pkgs, ... }: { {
inputs,
pkgs,
...
}: {
imports = [inputs.ironbar.homeManagerModules.default]; imports = [inputs.ironbar.homeManagerModules.default];
programs.ironbar = { programs.ironbar = {
enable = true; enable = true;
@@ -48,7 +52,8 @@
} }
{type = "tray";} {type = "tray";}
]; ];
start = [{ start = [
{
type = "workspaces"; type = "workspaces";
name_map = { name_map = {
"1" = "icon:foot"; "1" = "icon:foot";
@@ -64,7 +69,8 @@
}; };
favorites = ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10"]; favorites = ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10"];
all_monitors = true; all_monitors = true;
}]; }
];
}; };
}; };
style = let style = let
@@ -79,6 +85,7 @@
sha256 = "sha256-vfwfBE3iqIN1cGoItSssR7h0z6tuJAhNarkziGFlNBw"; sha256 = "sha256-vfwfBE3iqIN1cGoItSssR7h0z6tuJAhNarkziGFlNBw";
}; };
mocha = builtins.readFile "${catppuccin}/mocha.css"; mocha = builtins.readFile "${catppuccin}/mocha.css";
in mocha + builtins.readFile ./ironbar.css; in
mocha + builtins.readFile ./ironbar.css;
}; };
} }

View File

@@ -1,4 +1,8 @@
{ pkgs, config, ... }: { {
pkgs,
config,
...
}: {
services.mpd = { services.mpd = {
enable = true; enable = true;
}; };

View File

@@ -1,14 +1,17 @@
{ pkgs, config, lib, ... }: {
with lib; pkgs,
let config,
lib,
...
}:
with lib; let
cfg = config.programs.goread; cfg = config.programs.goread;
# configDir = # configDir =
# if pkgs.stdenv.isDarwin then # if pkgs.stdenv.isDarwin then
# "${config.home.homeDirectory}Library/Application Support/goread" # "${config.home.homeDirectory}Library/Application Support/goread"
# else # else
# "${config.xdg.configHome}/goread"; # "${config.xdg.configHome}/goread";
in in {
{
options = { options = {
programs.goread = { programs.goread = {
enable = mkEnableOption "goread - a terminal RSS/Atom reader"; enable = mkEnableOption "goread - a terminal RSS/Atom reader";
@@ -42,6 +45,5 @@ in
"goread/urls.yml".text = generators.toYAML {} cfg.config.urls; "goread/urls.yml".text = generators.toYAML {} cfg.config.urls;
# "goread/colorscheme.json".text = lib.generators.toJSON cfg.config.colorscheme; # "goread/colorscheme.json".text = lib.generators.toJSON cfg.config.colorscheme;
}; };
}; };
} }

View File

@@ -1,8 +1,11 @@
{ pkgs, config, lib, ... }: {
pkgs,
with lib; config,
lib,
let cfg = config.programs.hyprpaper; ...
}:
with lib; let
cfg = config.programs.hyprpaper;
in { in {
options = { options = {
programs.hyprpaper = { programs.hyprpaper = {
@@ -43,8 +46,7 @@ in {
extraConfig = mkOption { extraConfig = mkOption {
type = str; type = str;
default = ""; default = "";
description = description = "Check https://github.com/hyprwm/hyprpaper#usage for info";
"Check https://github.com/hyprwm/hyprpaper#usage for info";
example = '' example = ''
newConfigOption = foo,bar newConfigOption = foo,bar
''; '';
@@ -80,13 +82,16 @@ in {
# hyprpaper.settings.preload # hyprpaper.settings.preload
${(lists.foldl (acc: v: ${(lists.foldl (acc: v:
acc + '' acc
+ ''
preload = ${v} preload = ${v}
'') "" cfg.settings.preload)} '') ""
cfg.settings.preload)}
# hyprpaper.settings.wallpapers # hyprpaper.settings.wallpapers
${(lists.foldl (acc: v: ${(lists.foldl (acc: v:
acc + '' acc
+ ''
wallpaper = ${v} wallpaper = ${v}
'') "" (pkgs.lib.attrsets.mapAttrsToList (name: val: name + "," + val) '') "" (pkgs.lib.attrsets.mapAttrsToList (name: val: name + "," + val)
cfg.settings.wallpapers))} cfg.settings.wallpapers))}

View File

@@ -1,12 +1,13 @@
{ pkgs, config, lib, ... }: {
pkgs,
with lib; config,
lib,
let ...
}:
with lib; let
cfg = config.programs.tuifeed; cfg = config.programs.tuifeed;
tomlFormat = pkgs.formats.toml {}; tomlFormat = pkgs.formats.toml {};
in in {
{
options = { options = {
programs.tuifeed = { programs.tuifeed = {
enable = mkEnableOption "tuifeed - a terminal RSS/Atom reader"; enable = mkEnableOption "tuifeed - a terminal RSS/Atom reader";
@@ -32,7 +33,6 @@ in
''; '';
example = {}; example = {};
}; };
}; };
}; };
}; };
@@ -46,6 +46,5 @@ in
"article-title" = cfg.config.article_title; "article-title" = cfg.config.article_title;
}; };
}; };
}; };
} }

View File

@@ -1,7 +1,11 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ pkgs, device, ... }: { {
pkgs,
device,
...
}: {
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
./ryu.nix ./ryu.nix
@@ -28,20 +32,16 @@
}; };
boot.plymouth.enable = true; boot.plymouth.enable = true;
boot.plymouth.theme = "catppuccin-mocha"; boot.plymouth.theme = "catppuccin-mocha";
boot.plymouth.themePackages = with pkgs; boot.plymouth.themePackages = with pkgs; [(catppuccin-plymouth.override {variant = "mocha";})];
[ (catppuccin-plymouth.override { variant = "mocha"; }) ];
services.greetd = services.greetd = let
let
tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet";
hyprland-session = "${pkgs.hyprland}/share/wayland-sessions"; hyprland-session = "${pkgs.hyprland}/share/wayland-sessions";
in in {
{
enable = true; enable = true;
settings = { settings = {
default_session = { default_session = {
command = command = "${tuigreet} --time --remember --remember-session --sessions ${hyprland-session}";
"${tuigreet} --time --remember --remember-session --sessions ${hyprland-session}";
user = "greeter"; user = "greeter";
}; };
}; };
@@ -90,8 +90,7 @@
networking.nameservers = ["1.1.1.1" "8.8.8.8"]; networking.nameservers = ["1.1.1.1" "8.8.8.8"];
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
services.udev.packages = services.udev.packages = [pkgs.yubikey-personalization pkgs.yubikey-personalization-gui];
[ pkgs.yubikey-personalization pkgs.yubikey-personalization-gui ];
services.yubikey-agent.enable = true; services.yubikey-agent.enable = true;
# Configure network proxy if necessary # Configure network proxy if necessary
@@ -204,14 +203,19 @@
networking.firewall = { networking.firewall = {
enable = true; enable = true;
allowedTCPPortRanges = [ allowedTCPPortRanges = [
{ from = 1714; to = 1764; } # KDE Connect {
from = 1714;
to = 1764;
} # KDE Connect
]; ];
allowedUDPPortRanges = [ allowedUDPPortRanges = [
{ from = 1714; to = 1764; } # KDE Connect {
from = 1714;
to = 1764;
} # KDE Connect
]; ];
}; };
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View File

@@ -1,4 +1,12 @@
{ nixpkgs, devices, inputs, overlays, home-manager, nur, ... }: {
nixpkgs,
devices,
inputs,
overlays,
home-manager,
nur,
...
}:
builtins.listToAttrs (builtins.map (device: { builtins.listToAttrs (builtins.map (device: {
name = device.name; name = device.name;
value = nixpkgs.lib.nixosSystem { value = nixpkgs.lib.nixosSystem {
@@ -27,4 +35,5 @@ builtins.listToAttrs (builtins.map (device: {
} }
]; ];
}; };
}) devices) })
devices)

View File

@@ -1,9 +1,13 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")]; imports = [(modulesPath + "/installer/scan/not-detected.nix")];
hardware.opengl = { hardware.opengl = {
@@ -14,7 +18,6 @@
services.xserver.videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc. services.xserver.videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc.
hardware.nvidia = { hardware.nvidia = {
# Modesetting is required. # Modesetting is required.
modesetting.enable = true; modesetting.enable = true;
@@ -45,12 +48,9 @@
package = config.boot.kernelPackages.nvidiaPackages.beta; package = config.boot.kernelPackages.nvidiaPackages.beta;
}; };
# hardware.bluetooth.settings = { # hardware.bluetooth.settings = {
boot.initrd.availableKernelModules = ["vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.availableKernelModules =
[ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = []; boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = []; boot.extraModulePackages = [];

View File

@@ -1,13 +1,12 @@
{ inputs, ... }: {inputs, ...}: let
let
shell-scipts = final: prev: { shell-scipts = final: prev: {
handlr-xdg = (final.pkgs.writeShellApplication { handlr-xdg = final.pkgs.writeShellApplication {
name = "xdg-open"; name = "xdg-open";
runtimeInputs = [final.pkgs.handlr-regex]; runtimeInputs = [final.pkgs.handlr-regex];
text = '' text = ''
handlr open "$@" handlr open "$@"
''; '';
}); };
}; };
misc-applications = final: prev: { misc-applications = final: prev: {
@@ -25,8 +24,7 @@ let
checkPhase = null; checkPhase = null;
}; };
music-player-git = inputs.music-player.packages.${prev.system}.default; music-player-git = inputs.music-player.packages.${prev.system}.default;
davis = davis = let
let
davis-src = final.pkgs.fetchFromGitHub { davis-src = final.pkgs.fetchFromGitHub {
owner = "SimonPersson"; owner = "SimonPersson";
repo = "davis"; repo = "davis";
@@ -56,8 +54,7 @@ let
''; '';
}; };
picat = picat = let
let
# https://github.com/SimonPersson/picat # https://github.com/SimonPersson/picat
picat-src = final.pkgs.fetchFromGitHub { picat-src = final.pkgs.fetchFromGitHub {
owner = "SimonPersson"; owner = "SimonPersson";
@@ -76,9 +73,12 @@ let
}; };
psst = psst =
if final.pkgs.stdenv.isLinux then if final.pkgs.stdenv.isLinux
then
(prev.psst.overrideAttrs (finalAttrs: prevAttrs: { (prev.psst.overrideAttrs (finalAttrs: prevAttrs: {
postInstall = (prevAttrs.postInstall or "") + '' postInstall =
(prevAttrs.postInstall or "")
+ ''
patch $out/share/applications/Psst.desktop < ${./patches/psst.patch} patch $out/share/applications/Psst.desktop < ${./patches/psst.patch}
''; '';
})) }))
@@ -110,14 +110,17 @@ let
}; };
anyrun-overlay = final: prev: { anyrun-overlay = final: prev: {
anyrun = (inputs.anyrun.packages.${prev.system}.anyrun.overrideAttrs anyrun =
(finalAttrs: prevAttrs: { cargoPatches = [ ./patches/anyrun.patch ]; })); inputs.anyrun.packages.${prev.system}.anyrun.overrideAttrs
(finalAttrs: prevAttrs: {cargoPatches = [./patches/anyrun.patch];});
hyprwin = inputs.anyrun-hyprwin.packages.${prev.system}.hyprwin; hyprwin = inputs.anyrun-hyprwin.packages.${prev.system}.hyprwin;
nixos-options = inputs.anyrun-nixos-options.packages.${prev.system}.default; nixos-options = inputs.anyrun-nixos-options.packages.${prev.system}.default;
anyrun-rink = inputs.anyrun-rink.packages.${prev.system}.default; anyrun-rink = inputs.anyrun-rink.packages.${prev.system}.default;
}; };
vimPlugins = final: prev: { vimPlugins = final: prev: {
vimPlugins = prev.vimPlugins // { vimPlugins =
prev.vimPlugins
// {
comfortable-motion = final.pkgs.vimUtils.buildVimPlugin { comfortable-motion = final.pkgs.vimUtils.buildVimPlugin {
name = "comfortable-motion"; name = "comfortable-motion";
src = final.pkgs.fetchFromGitHub { src = final.pkgs.fetchFromGitHub {
@@ -157,8 +160,9 @@ let
}; };
}; };
tmuxPlugins = final: prev: { tmuxPlugins = final: prev: {
tmuxPlugins = prev.tmuxPlugins // { tmuxPlugins =
prev.tmuxPlugins
// {
tmux-super-fingers = final.pkgs.tmuxPlugins.mkTmuxPlugin { tmux-super-fingers = final.pkgs.tmuxPlugins.mkTmuxPlugin {
pluginName = "tmux-super-fingers"; pluginName = "tmux-super-fingers";
version = "v1-2024-02-14"; version = "v1-2024-02-14";
@@ -175,14 +179,14 @@ let
catppuccinThemes = import ./themes/catppuccin.nix {pkgs = final.pkgs;}; catppuccinThemes = import ./themes/catppuccin.nix {pkgs = final.pkgs;};
}; };
nix-index-db = (final: prev: { nix-index-db = final: prev: {
nix-index-database = final.runCommandLocal "nix-index-database" {} '' nix-index-database = final.runCommandLocal "nix-index-database" {} ''
mkdir -p $out mkdir -p $out
ln -s ${ ln -s ${
inputs.nix-index-database.legacyPackages.${prev.system}.database inputs.nix-index-database.legacyPackages.${prev.system}.database
} $out/files } $out/files
''; '';
}); };
# nixneovim = nixneovim.applyPatches { # nixneovim = nixneovim.applyPatches {
# name = "nixneovim-patched"; # name = "nixneovim-patched";
@@ -190,8 +194,10 @@ let
# patches = [ ./patches/nixneovim.patch ]; # patches = [ ./patches/nixneovim.patch ];
# }; # };
tree-sitter-grammars = (final: prev: { tree-sitter-grammars = final: prev: {
tree-sitter-grammars = prev.tree-sitter-grammars // { tree-sitter-grammars =
prev.tree-sitter-grammars
// {
tree-sitter-just = final.pkgs.tree-sitter.buildGrammar { tree-sitter-just = final.pkgs.tree-sitter.buildGrammar {
language = "just"; language = "just";
version = "1"; version = "1";
@@ -203,9 +209,8 @@ let
}; };
}; };
}; };
}); };
in in [
[
catppuccinThemes catppuccinThemes
vimPlugins vimPlugins
tree-sitter-grammars tree-sitter-grammars

View File

@@ -1,12 +1,11 @@
{ pkgs, ... }: {pkgs, ...}: let
let mkCatppuccin = {
mkCatppuccin = owner ? "catppuccin",
{ owner ? "catppuccin" version ? "0.0.1",
, version ? "0.0.1" item,
, item rev ? "main",
, rev ? "main" sha256 ? pkgs.lib.fakeSha256,
, sha256 ? pkgs.lib.fakeSha256 override ? null,
, override ? null
}: }:
pkgs.stdenv.mkDerivation { pkgs.stdenv.mkDerivation {
inherit version override; inherit version override;
@@ -23,12 +22,13 @@ let
}; };
flavors = ["latte" "frappe" "macchiato" "mocha"]; flavors = ["latte" "frappe" "macchiato" "mocha"];
mapFlavor = flavorMap: (flavor: { mapFlavor = flavorMap:
(flavor: {
name = flavor; name = flavor;
value = flavorMap flavor; value = flavorMap flavor;
}) flavors; })
in flavors;
{ in {
bat = mkCatppuccin { bat = mkCatppuccin {
item = "bat"; item = "bat";
sha256 = "sha256-yHt3oIjUnljARaihalcWSNldtaJfVDfmfiecYfbzGs0"; sha256 = "sha256-yHt3oIjUnljARaihalcWSNldtaJfVDfmfiecYfbzGs0";
@@ -60,15 +60,15 @@ in
sha256 = "sha256-czvR3bVZ0NfBmuu0JixalS7B1vf1uEGSTSUVVTclKxI"; sha256 = "sha256-czvR3bVZ0NfBmuu0JixalS7B1vf1uEGSTSUVVTclKxI";
}; };
gtk = (pkgs.catppuccin-gtk.override { gtk = pkgs.catppuccin-gtk.override {
variant = "mocha"; variant = "mocha";
size = "standard"; size = "standard";
accents = ["mauve"]; accents = ["mauve"];
tweaks = ["normal"]; tweaks = ["normal"];
}); };
papirus-folders = (pkgs.catppuccin-papirus-folders.override { papirus-folders = pkgs.catppuccin-papirus-folders.override {
accent = "mauve"; accent = "mauve";
flavor = "mocha"; flavor = "mocha";
}); };
} }

View File

@@ -1,9 +1,10 @@
{ pkgs, ... }: {pkgs, ...}: let
let getWall = {
getWall = { url, sha256 ? pkgs.lib.fakeSha256 }: url,
sha256 ? pkgs.lib.fakeSha256,
}:
builtins.fetchurl {inherit url sha256;}; builtins.fetchurl {inherit url sha256;};
in in rec {
rec {
inherit getWall; inherit getWall;
# Some predefined wallpapers # Some predefined wallpapers
lights = getWall { lights = getWall {