diff --git a/common/firefox.nix b/common/firefox.nix index 6425e71e..3adbf0c1 100644 --- a/common/firefox.nix +++ b/common/firefox.nix @@ -1,17 +1,22 @@ -{ device, pkgs, ... }: { +{ + device, + pkgs, + ... +}: { programs.firefox = { enable = device.isLinux; profiles.default = { - userChrome = - let - csshacks = pkgs.fetchFromGitHub { - owner = "MrOtherGuy"; - repo = "firefox-csshacks"; - rev = "master"; - sha256 = "sha256-XJ+MTEADzOsCIh0I8EAxbtIpDHfMJsN68sKBy7/1l60="; - }; - in - /* css */ + userChrome = let + csshacks = pkgs.fetchFromGitHub { + owner = "MrOtherGuy"; + repo = "firefox-csshacks"; + rev = "master"; + sha256 = "sha256-XJ+MTEADzOsCIh0I8EAxbtIpDHfMJsN68sKBy7/1l60="; + }; + in + /* + css + */ '' /* @import url(${csshacks}/chrome/toolbars_below_content.css); */ /* @import url(${csshacks}/chrome/scrollable_menupopups.css); */ @@ -23,12 +28,11 @@ tridactyl ]; }; - nativeMessagingHosts = [ pkgs.tridactyl-native ]; + nativeMessagingHosts = [pkgs.tridactyl-native]; policies = { ExtensionSettings = { "uBlock0@raymondhill.net" = { - install_url = - "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; installation_mode = "force_installed"; }; }; diff --git a/common/goread.nix b/common/goread.nix index fff5befc..aa1f8e29 100644 --- a/common/goread.nix +++ b/common/goread.nix @@ -1,30 +1,31 @@ -{ ... }: { - imports = [ ../modules/goread.nix ]; +{...}: { + imports = [../modules/goread.nix]; programs.goread = { enable = true; config = { urls = { - categories = [{ - name = "Rust"; - desc = "Stuff related to the rust programming language"; - subscriptions = [ - { - name = "r/rust"; - desc = "The rust subreddit"; - url = "https://old.reddit.com/r/rust/.rss"; - } - { - name = "thesquareplanet"; - desc = "jonhoo's blog"; - url = "https://thesquareplanet.com/feed.xml"; - } - { - name = "Jon Gjengset's Youtube"; - desc = "jonhoo's youtube channel"; - url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC_iD0xppBwwsrM9DegC5cQQ"; - } - ]; - } + categories = [ + { + name = "Rust"; + desc = "Stuff related to the rust programming language"; + subscriptions = [ + { + name = "r/rust"; + desc = "The rust subreddit"; + url = "https://old.reddit.com/r/rust/.rss"; + } + { + name = "thesquareplanet"; + desc = "jonhoo's blog"; + url = "https://thesquareplanet.com/feed.xml"; + } + { + name = "Jon Gjengset's Youtube"; + desc = "jonhoo's youtube channel"; + url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC_iD0xppBwwsrM9DegC5cQQ"; + } + ]; + } { name = "Nix"; desc = "Stuff related to the nix / nixos / nixlang"; @@ -35,9 +36,9 @@ url = "https://old.reddit.com/r/nixos/.rss"; } ]; - }]; + } + ]; }; }; }; - } diff --git a/common/home.nix b/common/home.nix index f1142155..756a49a6 100644 --- a/common/home.nix +++ b/common/home.nix @@ -1,16 +1,26 @@ -{ inputs, config, pkgs, lib, device, ... }: { - imports = [ - inputs.nix-index-database.hmModules.nix-index - ./tmux.nix - ./wezterm.nix - ./nvim.nix - ./goread.nix - ./ncmpcpp.nix - # ./neomutt.nix - ] ++ lib.optionals device.isLinux [ ../linux ]; +{ + inputs, + config, + pkgs, + lib, + device, + ... +}: { + imports = + [ + inputs.nix-index-database.hmModules.nix-index + ./tmux.nix + ./wezterm.nix + ./nvim.nix + ./goread.nix + ./ncmpcpp.nix + # ./neomutt.nix + ] + ++ lib.optionals device.isLinux [../linux]; home.packages = with pkgs; [ + sony-headphones-client sd go p7zip @@ -38,7 +48,7 @@ macchina ripgrep fd - nixfmt + alejandra dust cachix rustup @@ -48,11 +58,12 @@ nil pkg-config lua-language-server - (nerdfonts.override { fonts = [ "Hasklig" ]; }) + (nerdfonts.override {fonts = ["Hasklig"];}) pfetch-rs psst abaddon - ] ++ lib.optionals device.isLinux [ + ] + ++ lib.optionals device.isLinux [ mpv catppuccinThemes.gtk catppuccinThemes.papirus-folders @@ -74,7 +85,8 @@ lsof wl-clipboard ncpamixer - ] ++ lib.optionals device.isMac [ ]; + ] + ++ lib.optionals device.isMac []; xdg.enable = true; xdg.userDirs = { @@ -102,7 +114,7 @@ space.space = "file_picker"; space.w = ":w"; space.q = ":q"; - esc = [ "collapse_selection" "keep_primary_selection" ]; + esc = ["collapse_selection" "keep_primary_selection"]; }; }; }; @@ -133,7 +145,7 @@ cat = "bat"; t = "tmux"; }; - shellAliases = { g = "git"; }; + shellAliases = {g = "git";}; shellInit = '' set fish_greeting yes | fish_config theme save "Catppuccin Mocha" @@ -171,9 +183,10 @@ enable = true; enableFishIntegration = true; enableNushellIntegration = true; - settings = - let flavour = "mocha"; # Replace with your preferred palette - in { + settings = let + flavour = "mocha"; # Replace with your preferred palette + in + { # Check https://starship.rs/config/#prompt format = "$all$character"; palette = "catppuccin_${flavour}"; @@ -186,7 +199,8 @@ truncation_length = 4; style = "bold lavender"; }; - } // builtins.fromTOML (builtins.readFile + } + // builtins.fromTOML (builtins.readFile (pkgs.catppuccinThemes.starship + /palettes/${flavour}.toml)); }; eza = { @@ -213,14 +227,14 @@ }; bat = { enable = true; - config = { theme = "catppuccin"; }; + config = {theme = "catppuccin";}; themes = { catppuccin = { src = "${pkgs.catppuccinThemes.bat}/themes"; file = "Catppuccin Mocha.tmTheme"; }; }; - extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ]; + extraPackages = with pkgs.bat-extras; [batdiff batman batgrep batwatch]; }; rbw = { @@ -229,7 +243,9 @@ email = "uttarayan21@gmail.com"; base_url = "https://pass.uttarayan.me"; pinentry = - if device.isMac then pkgs.pinentry_mac else pkgs.pinentry-gnome3; + if device.isMac + then pkgs.pinentry_mac + else pkgs.pinentry-gnome3; }; }; @@ -243,7 +259,7 @@ ]; }; - home-manager = { enable = true; }; + home-manager = {enable = true;}; }; fonts.fontconfig.enable = true; @@ -251,10 +267,9 @@ home = { username = device.user; homeDirectory = - if device.isMac then - lib.mkForce "/Users/${device.user}" - else - lib.mkForce "/home/${device.user}"; + if device.isMac + then lib.mkForce "/Users/${device.user}" + else lib.mkForce "/home/${device.user}"; stateVersion = "23.11"; @@ -266,9 +281,11 @@ EDITOR = "nvim"; SHELL = "${pkgs.nushellFull}/bin/nu"; 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"]; }; } - diff --git a/common/ncmpcpp.nix b/common/ncmpcpp.nix index 71745df7..04d2c992 100644 --- a/common/ncmpcpp.nix +++ b/common/ncmpcpp.nix @@ -1,15 +1,16 @@ -{ pkgs, ... }: { +{pkgs, ...}: { programs.ncmpcpp = { enable = true; - bindings = pkgs.lib.attrsets.mapAttrsToList (key: value: { - key = key; - command = value; - }) { - j = "scroll_down"; - k = "scroll_up"; - J = [ "select_item" "scroll_down" ]; - K = [ "select_item" "scroll_up" ]; - }; + bindings = + pkgs.lib.attrsets.mapAttrsToList (key: value: { + key = key; + command = value; + }) { + j = "scroll_down"; + k = "scroll_up"; + J = ["select_item" "scroll_down"]; + K = ["select_item" "scroll_up"]; + }; package = pkgs.ncmpcpp; }; } diff --git a/common/neomutt.nix b/common/neomutt.nix index 5cbe196a..b64fb20e 100644 --- a/common/neomutt.nix +++ b/common/neomutt.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{pkgs, ...}: { programs.neomutt = { enable = true; vimKeys = true; diff --git a/common/newsboat.nix b/common/newsboat.nix index c5d1e19b..3b4af157 100644 --- a/common/newsboat.nix +++ b/common/newsboat.nix @@ -1,48 +1,45 @@ -{ pkgs, ... }: { +{pkgs, ...}: { programs.newsboat = { enable = false; urls = [ { title = "r/rust"; url = "https://www.reddit.com/r/rust/.rss"; - tags = [ "rust" ]; + tags = ["rust"]; } { title = "the square planet"; url = "https://thesquareplanet.com/feed.xml"; - tags = [ "rust" ]; + tags = ["rust"]; } { title = "Jon Gjengset's YouTube"; - url = - "https://www.youtube.com/feeds/videos.xml?channel_id=UC_iD0xppBwwsrM9DegC5cQQ"; - tags = [ "rust" "youtube" ]; + url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC_iD0xppBwwsrM9DegC5cQQ"; + tags = ["rust" "youtube"]; } ]; - extraConfig = - let - dracula = builtins.fetchurl { - url = "https://raw.githubusercontent.com/dracula/newsboat/main/newsboat"; - sha256 = "sha256:08b00ilc5zk5fkzqqd6aghcpya3d00s9kvv65b8c50rg7ikm88xr"; - }; - in - '' - include ${dracula} - unbind-key g - bind-key g home - unbind-key G - bind-key G end + extraConfig = let + dracula = builtins.fetchurl { + url = "https://raw.githubusercontent.com/dracula/newsboat/main/newsboat"; + sha256 = "sha256:08b00ilc5zk5fkzqqd6aghcpya3d00s9kvv65b8c50rg7ikm88xr"; + }; + in '' + include ${dracula} + unbind-key g + bind-key g home + unbind-key G + bind-key G end - unbind-key h - unbind-key j - unbind-key k - unbind-key l + unbind-key h + unbind-key j + unbind-key k + unbind-key l - bind-key h quit - bind-key j down - bind-key k up - bind-key l open - ''; + bind-key h quit + bind-key j down + bind-key k up + bind-key l open + ''; browser = "${pkgs.handlr-xdg}/bin/xdg-open"; maxItems = 50; autoReload = true; diff --git a/common/nvim.nix b/common/nvim.nix index 7e62da5f..10e5cc20 100644 --- a/common/nvim.nix +++ b/common/nvim.nix @@ -1,5 +1,11 @@ -{ pkgs, config, inputs, device, ... }: { - imports = [ inputs.nixneovim.nixosModules.default ]; +{ + pkgs, + config, + inputs, + device, + ... +}: { + imports = [inputs.nixneovim.nixosModules.default]; programs.nixneovim = { enable = true; extraPlugins = with pkgs.vimPlugins; [ @@ -80,7 +86,9 @@ undofile = true; }; - globals = { mapleader = " "; }; + globals = { + mapleader = " "; + }; plugins = { lspconfig = { enable = true; @@ -89,12 +97,14 @@ nil = { enable = true; extraConfig = - /* lua */ + # lua '' settings = { ['nil'] = { 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 = { flake = { @@ -113,7 +123,7 @@ sqls = { enable = true; onAttachExtra = - /* lua */ + # lua '' require('sqls').on_attach(client, bufnr) ''; @@ -121,7 +131,7 @@ # rust-analyzer.enable = true; }; extraLua.pre = - /* lua */ + # lua '' local lsp_zero = require'lsp-zero' local lspconfig = require 'lspconfig' @@ -163,7 +173,10 @@ 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; }; @@ -174,7 +187,6 @@ # cursorword.enable = true; starter.enable = true; }; - }; colorschemes = { catppuccin = { @@ -221,18 +233,21 @@ }; }; - extraConfigLua = - let - codelldb = if device.isLinux then pkgs.vscode-extensions.vadimcn.vscode-lldb.adapter else null; - liblldb = - if device.isLinux then - "${codelldb}/lldb/lib/liblldb.so" - # else if device.isMac then - # "${codelldb}/lldb/lib/liblldb.dylib" - else null - ; - in - /* lua */ + extraConfigLua = let + codelldb = + if device.isLinux + then pkgs.vscode-extensions.vadimcn.vscode-lldb.adapter + else null; + liblldb = + if device.isLinux + then "${codelldb}/lldb/lib/liblldb.so" + # else if device.isMac then + # "${codelldb}/lldb/lib/liblldb.dylib" + else null; + in + /* + lua + */ '' require'neotest'.setup({ adapters = { @@ -276,7 +291,7 @@ vim.lsp.inlay_hint.enable(bufnr, true) end end, - settings = function(project_root) + settings = function(project_root) local ra = require('rustaceanvim.config.server') return ra.load_rust_analyzer_settings(project_root, { settings_file_pattern = 'rust-analyzer.json' @@ -286,9 +301,8 @@ dap = { autoload_configurations = false, ${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; }; } - diff --git a/common/tmux.nix b/common/tmux.nix index dd8d78e1..f09029f5 100644 --- a/common/tmux.nix +++ b/common/tmux.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -let +{pkgs, ...}: let scratchpad = pkgs.writeShellScript "scratchpad" '' width=''${2:-95%} height=''${2:-95%} diff --git a/common/tuifeed.nix b/common/tuifeed.nix index 25cbd574..3e111075 100644 --- a/common/tuifeed.nix +++ b/common/tuifeed.nix @@ -1,5 +1,5 @@ -{ ... }: { - imports = [ ../modules/tuifeed.nix ]; +{...}: { + imports = [../modules/tuifeed.nix]; programs.tuifeed = { enable = false; config = { @@ -10,5 +10,4 @@ }; }; }; - } diff --git a/common/wezterm.nix b/common/wezterm.nix index ee654b52..9ef0f7be 100644 --- a/common/wezterm.nix +++ b/common/wezterm.nix @@ -1,8 +1,10 @@ -{ pkgs, ... }: { +{pkgs, ...}: { programs.wezterm = { enable = true; extraConfig = - /* lua */ + /* + lua + */ '' local wezterm = require 'wezterm'; return { diff --git a/darwin/configuration.nix b/darwin/configuration.nix index 7dcac6b2..1b93f50c 100644 --- a/darwin/configuration.nix +++ b/darwin/configuration.nix @@ -1,12 +1,12 @@ -{ pkgs, ... }: { - imports = [ ./yabai.nix ./skhd.nix ]; +{pkgs, ...}: { + imports = [./yabai.nix ./skhd.nix]; - environment.systemPackages = with pkgs; [ nix neovim ]; + environment.systemPackages = with pkgs; [nix neovim]; nix = { settings = { experimental-features = "nix-command flakes repl-flake"; max-jobs = 8; - trusted-users = [ "root" "fs0c131y" ]; + trusted-users = ["root" "fs0c131y"]; }; extraOptions = '' build-users-group = nixbld diff --git a/darwin/device.nix b/darwin/device.nix index 5d8575e6..20d1e07e 100644 --- a/darwin/device.nix +++ b/darwin/device.nix @@ -1,27 +1,35 @@ -{ devices, inputs, overlays, home-manager, nix-darwin, ... }: +{ + devices, + inputs, + overlays, + home-manager, + nix-darwin, + ... +}: builtins.listToAttrs (builtins.map (device: { - name = device.name; - value = nix-darwin.lib.darwinSystem { - system = device.system; - modules = [ - { - nixpkgs.overlays = overlays; - # nixpkgs.hostPlatform.config = device.system; - } - ./configuration.nix - home-manager.darwinModules.home-manager - { - nixpkgs.config.allowUnfree = true; - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { - inherit inputs; - inherit device; + name = device.name; + value = nix-darwin.lib.darwinSystem { + system = device.system; + modules = [ + { + nixpkgs.overlays = overlays; + # nixpkgs.hostPlatform.config = device.system; + } + ./configuration.nix + home-manager.darwinModules.home-manager + { + nixpkgs.config.allowUnfree = true; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + inherit device; + }; + users.${device.user}.imports = [../common/home.nix]; }; - users.${device.user}.imports = [ ../common/home.nix ]; - }; - } - ]; - }; -}) devices) + } + ]; + }; + }) + devices) diff --git a/darwin/skhd.nix b/darwin/skhd.nix index 1710897b..47a184ee 100644 --- a/darwin/skhd.nix +++ b/darwin/skhd.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{pkgs, ...}: { services = { skhd = { enable = true; diff --git a/darwin/yabai.nix b/darwin/yabai.nix index 357ac1cd..7e2e9bc9 100644 --- a/darwin/yabai.nix +++ b/darwin/yabai.nix @@ -1,4 +1,4 @@ -{ ... }: { +{...}: { services = { yabai = { enable = true; diff --git a/flake.nix b/flake.nix index 5870d708..b772e978 100644 --- a/flake.nix +++ b/flake.nix @@ -68,84 +68,85 @@ }; }; - outputs = - { nixpkgs - , home-manager - , nix-darwin - , flake-utils - , anyrun - , nur - , neovim-nightly-overlay - , ... - }@inputs: - let - config_devices = [ - { - name = "mirai"; - system = "x86_64-linux"; - user = "fs0c131y"; - } - { - name = "ryu"; - system = "x86_64-linux"; - user = "servius"; - isNix = true; - } - { - name = "genzai"; - system = "x86_64-linux"; - user = "fs0c131y"; - } - { - name = "Uttarayans-MacBook-Pro"; - system = "aarch64-darwin"; - user = "fs0c131y"; - } - { - name = "SteamDeck"; - system = "x86_64-linux"; - user = "deck"; - } - ]; + outputs = { + nixpkgs, + home-manager, + nix-darwin, + flake-utils, + anyrun, + nur, + neovim-nightly-overlay, + ... + } @ inputs: let + config_devices = [ + { + name = "mirai"; + system = "x86_64-linux"; + user = "fs0c131y"; + } + { + name = "ryu"; + system = "x86_64-linux"; + user = "servius"; + isNix = true; + } + { + name = "genzai"; + system = "x86_64-linux"; + user = "fs0c131y"; + } + { + name = "Uttarayans-MacBook-Pro"; + system = "aarch64-darwin"; + user = "fs0c131y"; + } + { + name = "SteamDeck"; + system = "x86_64-linux"; + user = "deck"; + } + ]; - mkDevice = { device }: { - isLinux = !isNull (builtins.match ".*-linux" device.system); - isNix = - if (builtins.hasAttr "isNix" device) then device.isNix else false; - isMac = !isNull (builtins.match ".*-darwin" device.system); - system = device.system; - name = device.name; - user = device.user; - }; - - devices = - builtins.map (device: mkDevice { inherit device; }) config_devices; - - nixos_devices = builtins.filter (x: x.isNix) devices; - linux_devices = builtins.filter (x: x.isLinux) devices; - darwin_devices = builtins.filter (x: x.isMac) devices; - - overlays = import ./overlays.nix { - inherit inputs; - }; - in - { - nixosConfigurations = - let devices = nixos_devices; - in import ./nixos/device.nix { - inherit devices inputs nixpkgs home-manager overlays nur; - }; - - darwinConfigurations = - let devices = darwin_devices; - in import ./darwin/device.nix { - inherit devices inputs nixpkgs home-manager overlays nix-darwin; - }; - - homeConfigurations = - let devices = linux_devices; - in import ./linux/device.nix { - inherit devices inputs nixpkgs home-manager overlays; - }; + mkDevice = {device}: { + isLinux = !isNull (builtins.match ".*-linux" device.system); + isNix = + if (builtins.hasAttr "isNix" device) + then device.isNix + else false; + isMac = !isNull (builtins.match ".*-darwin" device.system); + system = device.system; + name = device.name; + user = device.user; }; + + devices = + builtins.map (device: mkDevice {inherit device;}) config_devices; + + nixos_devices = builtins.filter (x: x.isNix) devices; + linux_devices = builtins.filter (x: x.isLinux) devices; + darwin_devices = builtins.filter (x: x.isMac) devices; + + overlays = import ./overlays.nix {inherit inputs;}; + in { + nixosConfigurations = let + devices = nixos_devices; + in + import ./nixos/device.nix { + inherit devices inputs nixpkgs home-manager overlays nur; + }; + + darwinConfigurations = let + devices = darwin_devices; + in + import ./darwin/device.nix { + inherit devices inputs nixpkgs home-manager overlays nix-darwin; + }; + + homeConfigurations = let + devices = linux_devices; + in + import ./linux/device.nix { + inherit devices inputs nixpkgs home-manager overlays; + }; + }; } diff --git a/linux/anyrun.nix b/linux/anyrun.nix index 2bb4fc33..1120df1f 100644 --- a/linux/anyrun.nix +++ b/linux/anyrun.nix @@ -1,5 +1,11 @@ -{ inputs, pkgs, device, osConfig, ... }: { - imports = [ inputs.anyrun.nixosModules.home-manager ]; +{ + inputs, + pkgs, + device, + osConfig, + ... +}: { + imports = [inputs.anyrun.nixosModules.home-manager]; programs.anyrun = { enable = true; config = { @@ -15,10 +21,10 @@ symbols kidex ]; - x = { fraction = 0.5; }; - y = { fraction = 0.3; }; - height = { absolute = 0; }; - width = { absolute = 1000; }; + x = {fraction = 0.5;}; + y = {fraction = 0.3;}; + height = {absolute = 0;}; + width = {absolute = 1000;}; showResultsImmediately = true; maxEntries = 10; layer = "overlay"; @@ -26,10 +32,12 @@ extraConfigFiles = { "nixos-options.ron".text = let - nixos-options = pkgs.lib.optionalString device.isNix + nixos-options = + pkgs.lib.optionalString device.isNix osConfig.system.build.manual.optionsJSON + "/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"; # 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 @@ -41,8 +49,13 @@ # ":nall" = [nixos-options hm-options some-other-option]; # }; options = builtins.toJSON ({ - ":hm" = [ hm-options ]; - } // (if device.isNix then { ":nix" = [ nixos-options ]; } else { })); + ":hm" = [hm-options]; + } + // ( + if device.isNix + then {":nix" = [nixos-options];} + else {} + )); in '' Config( options: ${options}, @@ -56,7 +69,9 @@ ) ''; "websearch.ron".text = - /* ron */ + /* + ron + */ '' Config( prefix: "?", @@ -85,12 +100,12 @@ "rink.ron".text = '' Config( currency: Some("${ - builtins.toFile "currency.units" '' - !category currencies "Currencies" - usd USD - inr INR - '' - }"), + builtins.toFile "currency.units" '' + !category currencies "Currencies" + usd USD + inr INR + '' + }"), ) ''; }; diff --git a/linux/default.nix b/linux/default.nix index 17d2eed1..cc57b344 100644 --- a/linux/default.nix +++ b/linux/default.nix @@ -1,4 +1,10 @@ -{ pkgs, device, nur, inputs, ... }: { +{ + pkgs, + device, + nur, + inputs, + ... +}: { imports = [ ../common/firefox.nix ../linux/hyprland.nix @@ -9,7 +15,6 @@ ../linux/mpd.nix ]; - services.kdeconnect.enable = true; services.kdeconnect.indicator = true; services.swayosd.enable = true; @@ -19,10 +24,10 @@ }; systemd.user.services.spotify-player = { - Install = { WantedBy = [ "graphical-session.target" ]; }; + Install = {WantedBy = ["graphical-session.target"];}; Unit = { Description = "Spotify Player Daemon"; - After = [ "graphical-session.target" ]; + After = ["graphical-session.target"]; }; Service = { ExecStart = "${pkgs.spotify-player}/bin/spotify_player -d"; diff --git a/linux/device.nix b/linux/device.nix index da445554..602aaa4e 100644 --- a/linux/device.nix +++ b/linux/device.nix @@ -1,17 +1,25 @@ -{ devices, inputs, overlays, home-manager, ... }: +{ + devices, + inputs, + overlays, + home-manager, + ... +}: builtins.listToAttrs (builtins.map (device: { - name = device.user; - value = let - pkgs = import inputs.nixpkgs { - inherit overlays; - system = device.system; - }; - in home-manager.lib.homeManagerConfiguration { - inherit pkgs; - extraSpecialArgs = { - inherit inputs; - inherit device; - }; - modules = [ { nixpkgs.config.allowUnfree = true; } ../common/home.nix ]; - }; -}) devices) + name = device.user; + value = let + pkgs = import inputs.nixpkgs { + inherit overlays; + system = device.system; + }; + in + home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { + inherit inputs; + inherit device; + }; + modules = [{nixpkgs.config.allowUnfree = true;} ../common/home.nix]; + }; + }) + devices) diff --git a/linux/foot.nix b/linux/foot.nix index e096d268..a65d70b6 100644 --- a/linux/foot.nix +++ b/linux/foot.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{pkgs, ...}: { programs.foot = { enable = pkgs.stdenv.isLinux; server.enable = true; diff --git a/linux/gtk.nix b/linux/gtk.nix index 0de31cad..347568e9 100644 --- a/linux/gtk.nix +++ b/linux/gtk.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{pkgs, ...}: { gtk = { enable = true; theme = { @@ -6,8 +6,8 @@ package = pkgs.catppuccin-gtk.override { variant = "mocha"; size = "standard"; - accents = [ "mauve" ]; - tweaks = [ "normal" ]; + accents = ["mauve"]; + tweaks = ["normal"]; }; }; @@ -20,11 +20,11 @@ }; cursorTheme = { - name = "Vanillay-DMZ"; - package = pkgs.vanilla-dmz; + name = "Vanillay-DMZ"; + package = pkgs.vanilla-dmz; }; - gtk3.extraConfig = { gtk-application-prefer-dark-theme = 1; }; - gtk4.extraConfig = { gtk-application-prefer-dark-theme = 1; }; + gtk3.extraConfig = {gtk-application-prefer-dark-theme = 1;}; + gtk4.extraConfig = {gtk-application-prefer-dark-theme = 1;}; }; } diff --git a/linux/hyprland.nix b/linux/hyprland.nix index f9134585..6ec122d7 100644 --- a/linux/hyprland.nix +++ b/linux/hyprland.nix @@ -1,18 +1,22 @@ -{ pkgs, inputs, ... }: { - imports = [ ../modules/hyprpaper.nix inputs.hyprlock.homeManagerModules.hyprlock ]; +{ + pkgs, + inputs, + ... +}: { + imports = [../modules/hyprpaper.nix inputs.hyprlock.homeManagerModules.hyprlock]; - programs.hyprpaper = - let wallpapers = import ../utils/wallhaven.nix { inherit pkgs; }; - in { - enable = true; - systemd.enable = true; - systemd.target = "hyprland-session.target"; - settings.preload = wallpapers.all; - settings.wallpapers = { - "DP-3" = wallpapers.frieren_3; - "DP-1" = wallpapers.shapes; - }; + programs.hyprpaper = let + wallpapers = import ../utils/wallhaven.nix {inherit pkgs;}; + in { + enable = true; + systemd.enable = true; + systemd.target = "hyprland-session.target"; + settings.preload = wallpapers.all; + settings.wallpapers = { + "DP-3" = wallpapers.frieren_3; + "DP-1" = wallpapers.shapes; }; + }; programs.hyprlock = { enable = true; }; diff --git a/linux/ironbar/default.nix b/linux/ironbar/default.nix index f6b3c909..dc30ed9b 100644 --- a/linux/ironbar/default.nix +++ b/linux/ironbar/default.nix @@ -1,5 +1,9 @@ -{ inputs, pkgs, ... }: { - imports = [ inputs.ironbar.homeManagerModules.default ]; +{ + inputs, + pkgs, + ... +}: { + imports = [inputs.ironbar.homeManagerModules.default]; programs.ironbar = { enable = true; config.monitors = { @@ -8,11 +12,11 @@ start = [ { type = "launcher"; - favourites = [ "firefox" "discord" ]; + favourites = ["firefox" "discord"]; show_names = false; show_icons = true; } - { type = "focused"; } + {type = "focused";} ]; end = [ { @@ -25,7 +29,7 @@ type = "music"; player_type = "mpris"; } - { type = "clock"; } + {type = "clock";} ]; }; DP-3 = { @@ -46,25 +50,27 @@ # networks= 3; }; } - { type = "tray"; } + {type = "tray";} + ]; + start = [ + { + type = "workspaces"; + name_map = { + "1" = "icon:foot"; + "2" = "icon:code"; + "3" = "icon:firefox"; + "4" = "icon:slack"; + "5" = "icon:steam"; + "6" = "icon:misc"; + "7" = "icon:misc"; + "8" = "icon:firefox"; + "9" = "icon:discord"; + "10" = "icon:spotify"; + }; + favorites = ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10"]; + all_monitors = true; + } ]; - start = [{ - type = "workspaces"; - name_map = { - "1" = "icon:foot"; - "2" = "icon:code"; - "3" = "icon:firefox"; - "4" = "icon:slack"; - "5" = "icon:steam"; - "6" = "icon:misc"; - "7" = "icon:misc"; - "8" = "icon:firefox"; - "9" = "icon:discord"; - "10" = "icon:spotify"; - }; - favorites = [ "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" ]; - all_monitors = true; - }]; }; }; style = let @@ -79,6 +85,7 @@ sha256 = "sha256-vfwfBE3iqIN1cGoItSssR7h0z6tuJAhNarkziGFlNBw"; }; mocha = builtins.readFile "${catppuccin}/mocha.css"; - in mocha + builtins.readFile ./ironbar.css; + in + mocha + builtins.readFile ./ironbar.css; }; } diff --git a/linux/mpd.nix b/linux/mpd.nix index b4620440..0a8ce907 100644 --- a/linux/mpd.nix +++ b/linux/mpd.nix @@ -1,4 +1,8 @@ -{ pkgs, config, ... }: { +{ + pkgs, + config, + ... +}: { services.mpd = { enable = true; }; diff --git a/modules/goread.nix b/modules/goread.nix index 73b5a718..1c1e285d 100644 --- a/modules/goread.nix +++ b/modules/goread.nix @@ -1,14 +1,17 @@ -{ pkgs, config, lib, ... }: -with lib; -let +{ + pkgs, + config, + lib, + ... +}: +with lib; let cfg = config.programs.goread; # configDir = # if pkgs.stdenv.isDarwin then # "${config.home.homeDirectory}Library/Application Support/goread" # else # "${config.xdg.configHome}/goread"; -in -{ +in { options = { programs.goread = { enable = mkEnableOption "goread - a terminal RSS/Atom reader"; @@ -16,17 +19,17 @@ in config = with types; { urls = mkOption { type = attrsOf (listOf attrs); - default = { }; + default = {}; description = '' Urls that will be fetched ~/.config/goread/urls.yml ''; - example = { }; + example = {}; }; colorscheme = mkOption { type = attrsOf str; - default = { }; - example = { }; + default = {}; + example = {}; description = '' Colorscheme that will be fetched ~/.config/goread/colorscheme.json ''; @@ -36,12 +39,11 @@ in }; config = { - home.packages = mkIf cfg.enable [ pkgs.goread ]; + home.packages = mkIf cfg.enable [pkgs.goread]; xdg.configFile = mkIf cfg.enable { - "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; }; - }; } diff --git a/modules/hyprpaper.nix b/modules/hyprpaper.nix index b6bc3450..a2313f05 100644 --- a/modules/hyprpaper.nix +++ b/modules/hyprpaper.nix @@ -1,8 +1,11 @@ -{ pkgs, config, lib, ... }: - -with lib; - -let cfg = config.programs.hyprpaper; +{ + pkgs, + config, + lib, + ... +}: +with lib; let + cfg = config.programs.hyprpaper; in { options = { programs.hyprpaper = { @@ -24,17 +27,17 @@ in { settings = with types; { preload = mkOption { type = listOf path; - default = [ ]; + default = []; description = '' - Wallpaper images that should be preloaded into memory + Wallpaper images that should be preloaded into memory ''; - example = [ ./wallpapers/tensura.png ]; + example = [./wallpapers/tensura.png]; }; wallpapers = mkOption { type = attrsOf str; - default = { }; - example = { "DP-1" = ./wallpapers/tensura.png; }; + default = {}; + example = {"DP-1" = ./wallpapers/tensura.png;}; description = '' Wallpaper to monitor mapper ''; @@ -43,8 +46,7 @@ in { extraConfig = mkOption { type = str; default = ""; - description = - "Check https://github.com/hyprwm/hyprpaper#usage for info"; + description = "Check https://github.com/hyprwm/hyprpaper#usage for info"; example = '' newConfigOption = foo,bar ''; @@ -54,14 +56,14 @@ in { }; config = { - home.packages = mkIf cfg.enable [ pkgs.hyprpaper ]; + home.packages = mkIf cfg.enable [pkgs.hyprpaper]; systemd.user.services.hyprpaper = mkIf cfg.systemd.enable { Unit = { Description = "autostart service for Hyprpaper"; Documentation = "https://github.com/hyprwm/hyprpaper"; - BindsTo = [ "graphical-session.target" ]; - After = [ "graphical-session-pre.target" ]; + BindsTo = ["graphical-session.target"]; + After = ["graphical-session-pre.target"]; }; Service = { @@ -71,7 +73,7 @@ in { KillMode = "mixed"; }; - Install = { WantedBy = [ cfg.systemd.target ]; }; + Install = {WantedBy = [cfg.systemd.target];}; }; xdg.configFile = mkIf cfg.enable { @@ -80,16 +82,19 @@ in { # hyprpaper.settings.preload ${(lists.foldl (acc: v: - acc + '' + acc + + '' preload = ${v} - '') "" cfg.settings.preload)} + '') "" + cfg.settings.preload)} # hyprpaper.settings.wallpapers ${(lists.foldl (acc: v: - acc + '' + acc + + '' wallpaper = ${v} '') "" (pkgs.lib.attrsets.mapAttrsToList (name: val: name + "," + val) - cfg.settings.wallpapers))} + cfg.settings.wallpapers))} # hyprpaper.settings.extraConfig ${cfg.settings.extraConfig} diff --git a/modules/tuifeed.nix b/modules/tuifeed.nix index 66150eee..3df89d5f 100644 --- a/modules/tuifeed.nix +++ b/modules/tuifeed.nix @@ -1,12 +1,13 @@ -{ pkgs, config, lib, ... }: - -with lib; - -let - cfg = config.programs.tuifeed; - tomlFormat = pkgs.formats.toml { }; -in { + pkgs, + config, + lib, + ... +}: +with lib; let + cfg = config.programs.tuifeed; + tomlFormat = pkgs.formats.toml {}; +in { options = { programs.tuifeed = { enable = mkEnableOption "tuifeed - a terminal RSS/Atom reader"; @@ -14,11 +15,11 @@ in config = with types; { sources = mkOption { type = attrsOf str; - default = { }; + default = {}; description = '' Urls that will be fetched ~/.config/tuifeed/urls.yml ''; - example = { }; + example = {}; }; article_title = mkOption { @@ -30,15 +31,14 @@ in description = '' Urls that will be fetched ~/.config/tuifeed/urls.yml ''; - example = { }; + example = {}; }; - }; }; }; config = { - home.packages = mkIf cfg.enable [ pkgs.tuifeed ]; + home.packages = mkIf cfg.enable [pkgs.tuifeed]; xdg.configFile = mkIf cfg.enable { "tuifeed/config.toml".source = tomlFormat.generate "tuifeed-config" { @@ -46,6 +46,5 @@ in "article-title" = cfg.config.article_title; }; }; - }; } diff --git a/nixos/configuration.nix b/nixos/configuration.nix index bd1d128b..915a9310 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -1,7 +1,11 @@ # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ pkgs, device, ... }: { +{ + pkgs, + device, + ... +}: { imports = [ # Include the results of the hardware scan. ./ryu.nix @@ -28,24 +32,20 @@ }; boot.plymouth.enable = true; boot.plymouth.theme = "catppuccin-mocha"; - boot.plymouth.themePackages = with pkgs; - [ (catppuccin-plymouth.override { variant = "mocha"; }) ]; + boot.plymouth.themePackages = with pkgs; [(catppuccin-plymouth.override {variant = "mocha";})]; - services.greetd = - let - tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; - hyprland-session = "${pkgs.hyprland}/share/wayland-sessions"; - in - { - enable = true; - settings = { - default_session = { - command = - "${tuigreet} --time --remember --remember-session --sessions ${hyprland-session}"; - user = "greeter"; - }; + services.greetd = let + tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; + hyprland-session = "${pkgs.hyprland}/share/wayland-sessions"; + in { + enable = true; + settings = { + default_session = { + command = "${tuigreet} --time --remember --remember-session --sessions ${hyprland-session}"; + user = "greeter"; }; }; + }; systemd.services.greetd.serviceConfig = { Type = "idle"; @@ -87,11 +87,10 @@ boot.bootspec.enable = true; networking.hostName = "ryu"; # Define your hostname. - 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. - services.udev.packages = - [ pkgs.yubikey-personalization pkgs.yubikey-personalization-gui ]; + services.udev.packages = [pkgs.yubikey-personalization pkgs.yubikey-personalization-gui]; services.yubikey-agent.enable = true; # Configure network proxy if necessary @@ -104,7 +103,7 @@ # Set your time zone. time.timeZone = "Asia/Kolkata"; - i18n.supportedLocales = [ "en_US.UTF-8/UTF-8" ]; + i18n.supportedLocales = ["en_US.UTF-8/UTF-8"]; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; @@ -131,7 +130,7 @@ users.users.servius = { isNormalUser = true; description = "Uttarayan"; - extraGroups = [ "networkmanager" "wheel" ]; + extraGroups = ["networkmanager" "wheel"]; }; # Allow unfree packages @@ -152,11 +151,11 @@ fish nushellFull (pkgs.wrapFirefox - (pkgs.firefox-unwrapped.override { pipewireSupport = true; }) - { }) + (pkgs.firefox-unwrapped.override {pipewireSupport = true;}) + {}) gnumake python3 - (nerdfonts.override { fonts = [ "FiraCode" "Hasklig" ]; }) + (nerdfonts.override {fonts = ["FiraCode" "Hasklig"];}) ]; environment.sessionVariables = { WLR_NO_HARDWARE_CURSORS = "1"; @@ -204,14 +203,19 @@ networking.firewall = { enable = true; allowedTCPPortRanges = [ - { from = 1714; to = 1764; } # KDE Connect + { + from = 1714; + to = 1764; + } # KDE Connect ]; allowedUDPPortRanges = [ - { from = 1714; to = 1764; } # KDE Connect + { + from = 1714; + to = 1764; + } # KDE Connect ]; }; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave @@ -220,5 +224,5 @@ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "23.11"; # Did you read the comment? nix.settings.extra-experimental-features = "nix-command flakes"; - nix.settings.trusted-users = [ "root" "servius" ]; + nix.settings.trusted-users = ["root" "servius"]; } diff --git a/nixos/device.nix b/nixos/device.nix index 8881b8d6..925a1e5c 100644 --- a/nixos/device.nix +++ b/nixos/device.nix @@ -1,30 +1,39 @@ -{ nixpkgs, devices, inputs, overlays, home-manager, nur, ... }: +{ + nixpkgs, + devices, + inputs, + overlays, + home-manager, + nur, + ... +}: builtins.listToAttrs (builtins.map (device: { - name = device.name; - value = nixpkgs.lib.nixosSystem { - system = device.system; - specialArgs = { - inherit device; - lanzaboote = inputs.lanzaboote; - }; - modules = [ - nur.nixosModules.nur - { nixpkgs.overlays = overlays; } - ./configuration.nix - home-manager.nixosModules.home-manager - inputs.lanzaboote.nixosModules.lanzaboote - { - nixpkgs.config.allowUnfree = true; - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { - inherit inputs; - inherit device; + name = device.name; + value = nixpkgs.lib.nixosSystem { + system = device.system; + specialArgs = { + inherit device; + lanzaboote = inputs.lanzaboote; + }; + modules = [ + nur.nixosModules.nur + {nixpkgs.overlays = overlays;} + ./configuration.nix + home-manager.nixosModules.home-manager + inputs.lanzaboote.nixosModules.lanzaboote + { + nixpkgs.config.allowUnfree = true; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + inherit device; + }; + users.${device.user}.imports = [../common/home.nix]; }; - users.${device.user}.imports = [ ../common/home.nix ]; - }; - } - ]; - }; -}) devices) + } + ]; + }; + }) + devices) diff --git a/nixos/ryu.nix b/nixos/ryu.nix index e371c2e0..5113f29e 100644 --- a/nixos/ryu.nix +++ b/nixos/ryu.nix @@ -1,10 +1,14 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; hardware.opengl = { enable = true; @@ -12,15 +16,14 @@ driSupport32Bit = true; }; - services.xserver.videoDrivers = [ "nvidia" ]; # or "nvidiaLegacy470 etc. + services.xserver.videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc. hardware.nvidia = { - # Modesetting is required. modesetting.enable = true; # Nvidia power management. Experimental, and can cause sleep/suspend to fail. # Enable this if you have graphical corruption issues or application crashes after waking - # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead + # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead # of just the bare essentials. powerManagement.enable = false; @@ -30,9 +33,9 @@ # Use the NVidia open source kernel module (not to be confused with the # independent third-party "nouveau" open source driver). - # Support is limited to the Turing and later architectures. Full list of - # supported GPUs is at: - # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # Only available from driver 515.43.04+ # Currently alpha-quality/buggy, so false is currently the recommended setting. open = true; @@ -45,15 +48,12 @@ package = config.boot.kernelPackages.nvidiaPackages.beta; }; - # hardware.bluetooth.settings = { - - boot.initrd.availableKernelModules = - [ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; fileSystems."/" = { device = "/dev/disk/by-uuid/11d8beef-2a63-4231-af35-b9b8d3a17e9b"; @@ -70,7 +70,7 @@ fsType = "ext4"; }; - swapDevices = [ ]; + swapDevices = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/overlays.nix b/overlays.nix index 9979d8a1..a718f0ec 100644 --- a/overlays.nix +++ b/overlays.nix @@ -1,13 +1,12 @@ -{ inputs, ... }: -let +{inputs, ...}: let shell-scipts = final: prev: { - handlr-xdg = (final.pkgs.writeShellApplication { + handlr-xdg = final.pkgs.writeShellApplication { name = "xdg-open"; - runtimeInputs = [ final.pkgs.handlr-regex ]; + runtimeInputs = [final.pkgs.handlr-regex]; text = '' handlr open "$@" ''; - }); + }; }; misc-applications = final: prev: { @@ -21,32 +20,31 @@ let rev = "v1.6.4"; sha256 = "sha256-m6reRaJNeFhJBUatfPNm66LwTXPdD/gioT8HTv52QOw"; }; - patches = [ patches/goread.patch ]; + patches = [patches/goread.patch]; checkPhase = null; }; music-player-git = inputs.music-player.packages.${prev.system}.default; - davis = - let - davis-src = final.pkgs.fetchFromGitHub { - owner = "SimonPersson"; - repo = "davis"; - rev = "main"; - sha256 = "sha256-p4l1nF6M28OyIaPorgsyR7NJtmVwpmuws67KvVnJa8s"; - }; - cargoToml = - builtins.fromTOML (builtins.readFile "${davis-src}/Cargo.toml"); - in + davis = let + davis-src = final.pkgs.fetchFromGitHub { + owner = "SimonPersson"; + repo = "davis"; + rev = "main"; + sha256 = "sha256-p4l1nF6M28OyIaPorgsyR7NJtmVwpmuws67KvVnJa8s"; + }; + cargoToml = + builtins.fromTOML (builtins.readFile "${davis-src}/Cargo.toml"); + in final.rustPlatform.buildRustPackage { pname = cargoToml.package.name; version = cargoToml.package.version; src = davis-src; - cargoLock = { lockFile = "${davis-src}/Cargo.lock"; }; + cargoLock = {lockFile = "${davis-src}/Cargo.lock";}; buildPhase = '' runHook cargoBuildHook runHook cargoInstallPostBuildHook ''; - runtimeInputs = [ final.pkgs.picat ]; - buildInputs = [ final.pkgs.picat ]; + runtimeInputs = [final.pkgs.picat]; + buildInputs = [final.pkgs.picat]; installPhase = '' mkdir -p $out/bin cp $bins $out/bin @@ -56,31 +54,33 @@ let ''; }; - picat = - let - # https://github.com/SimonPersson/picat - picat-src = final.pkgs.fetchFromGitHub { - owner = "SimonPersson"; - repo = "picat"; - rev = "main"; - sha256 = "sha256-HheBinHW4RLjRtiE8Xe5BoEuSCdtZTA9XkRJgtDkXaM"; - }; - cargoToml = - builtins.fromTOML (builtins.readFile "${picat-src}/Cargo.toml"); - in + picat = let + # https://github.com/SimonPersson/picat + picat-src = final.pkgs.fetchFromGitHub { + owner = "SimonPersson"; + repo = "picat"; + rev = "main"; + sha256 = "sha256-HheBinHW4RLjRtiE8Xe5BoEuSCdtZTA9XkRJgtDkXaM"; + }; + cargoToml = + builtins.fromTOML (builtins.readFile "${picat-src}/Cargo.toml"); + in final.rustPlatform.buildRustPackage { pname = cargoToml.package.name; version = cargoToml.package.version; src = picat-src; - cargoLock = { lockFile = "${picat-src}/Cargo.lock"; }; + cargoLock = {lockFile = "${picat-src}/Cargo.lock";}; }; psst = - if final.pkgs.stdenv.isLinux then + if final.pkgs.stdenv.isLinux + then (prev.psst.overrideAttrs (finalAttrs: prevAttrs: { - postInstall = (prevAttrs.postInstall or "") + '' - patch $out/share/applications/Psst.desktop < ${./patches/psst.patch} - ''; + postInstall = + (prevAttrs.postInstall or "") + + '' + patch $out/share/applications/Psst.desktop < ${./patches/psst.patch} + ''; })) else final.rustPlatform.buildRustPackage rec { @@ -110,79 +110,83 @@ let }; anyrun-overlay = final: prev: { - anyrun = (inputs.anyrun.packages.${prev.system}.anyrun.overrideAttrs - (finalAttrs: prevAttrs: { cargoPatches = [ ./patches/anyrun.patch ]; })); + anyrun = + inputs.anyrun.packages.${prev.system}.anyrun.overrideAttrs + (finalAttrs: prevAttrs: {cargoPatches = [./patches/anyrun.patch];}); hyprwin = inputs.anyrun-hyprwin.packages.${prev.system}.hyprwin; nixos-options = inputs.anyrun-nixos-options.packages.${prev.system}.default; anyrun-rink = inputs.anyrun-rink.packages.${prev.system}.default; }; vimPlugins = final: prev: { - vimPlugins = prev.vimPlugins // { - comfortable-motion = final.pkgs.vimUtils.buildVimPlugin { - name = "comfortable-motion"; - src = final.pkgs.fetchFromGitHub { - owner = "yuttie"; - repo = "comfortable-motion.vim"; - rev = "master"; - sha256 = "sha256-S1LJXmShhpCJIg/FEPx3jFbmPpS/1U4MAQN2RY/nkI0"; + vimPlugins = + prev.vimPlugins + // { + comfortable-motion = final.pkgs.vimUtils.buildVimPlugin { + name = "comfortable-motion"; + src = final.pkgs.fetchFromGitHub { + owner = "yuttie"; + repo = "comfortable-motion.vim"; + rev = "master"; + sha256 = "sha256-S1LJXmShhpCJIg/FEPx3jFbmPpS/1U4MAQN2RY/nkI0"; + }; + }; + sqls-nvim = final.pkgs.vimUtils.buildVimPlugin { + name = "sqls-nvim"; + src = final.pkgs.fetchFromGitHub { + owner = "nanotee"; + repo = "sqls.nvim"; + rev = "master"; + sha256 = "sha256-jKFut6NZAf/eIeIkY7/2EsjsIhvZQKCKAJzeQ6XSr0s"; + }; + }; + outline-nvim = final.pkgs.vimUtils.buildVimPlugin { + name = "outline-nvim"; + src = final.pkgs.fetchFromGitHub { + owner = "hedyhli"; + repo = "outline.nvim"; + rev = "master"; + sha256 = "sha256-HaxfnvgFy7fpa2CS7/dQhf6dK9+Js7wP5qGdIeXLGPY"; + }; + }; + rest-nvim = final.pkgs.vimUtils.buildVimPlugin { + name = "rest-nvim"; + src = final.pkgs.fetchFromGitHub { + owner = "rest-nvim"; + repo = "rest.nvim"; + rev = "main"; + sha256 = "sha256-3EC0j/hEbdQ8nJU0I+LGmE/zNnglO/FrP/6POer0338="; + }; }; }; - sqls-nvim = final.pkgs.vimUtils.buildVimPlugin { - name = "sqls-nvim"; - src = final.pkgs.fetchFromGitHub { - owner = "nanotee"; - repo = "sqls.nvim"; - rev = "master"; - sha256 = "sha256-jKFut6NZAf/eIeIkY7/2EsjsIhvZQKCKAJzeQ6XSr0s"; - }; - }; - outline-nvim = final.pkgs.vimUtils.buildVimPlugin { - name = "outline-nvim"; - src = final.pkgs.fetchFromGitHub { - owner = "hedyhli"; - repo = "outline.nvim"; - rev = "master"; - sha256 = "sha256-HaxfnvgFy7fpa2CS7/dQhf6dK9+Js7wP5qGdIeXLGPY"; - }; - }; - rest-nvim = final.pkgs.vimUtils.buildVimPlugin { - name = "rest-nvim"; - src = final.pkgs.fetchFromGitHub { - owner = "rest-nvim"; - repo = "rest.nvim"; - rev = "main"; - sha256 = "sha256-3EC0j/hEbdQ8nJU0I+LGmE/zNnglO/FrP/6POer0338="; - }; - }; - }; }; tmuxPlugins = final: prev: { - tmuxPlugins = prev.tmuxPlugins // { - - tmux-super-fingers = final.pkgs.tmuxPlugins.mkTmuxPlugin { - pluginName = "tmux-super-fingers"; - version = "v1-2024-02-14"; - src = final.pkgs.fetchFromGitHub { - owner = "artemave"; - repo = "tmux_super_fingers"; - rev = "518044ef78efa1cf3c64f2e693fef569ae570ddd"; - sha256 = "sha256-iKfx9Ytk2vSuINvQTB6Kww8Vv7i51cFEnEBHLje+IJw="; + tmuxPlugins = + prev.tmuxPlugins + // { + tmux-super-fingers = final.pkgs.tmuxPlugins.mkTmuxPlugin { + pluginName = "tmux-super-fingers"; + version = "v1-2024-02-14"; + src = final.pkgs.fetchFromGitHub { + owner = "artemave"; + repo = "tmux_super_fingers"; + rev = "518044ef78efa1cf3c64f2e693fef569ae570ddd"; + sha256 = "sha256-iKfx9Ytk2vSuINvQTB6Kww8Vv7i51cFEnEBHLje+IJw="; + }; }; }; - }; }; catppuccinThemes = final: prev: { - catppuccinThemes = import ./themes/catppuccin.nix { pkgs = final.pkgs; }; + catppuccinThemes = import ./themes/catppuccin.nix {pkgs = final.pkgs;}; }; - nix-index-db = (final: prev: { - nix-index-database = final.runCommandLocal "nix-index-database" { } '' + nix-index-db = final: prev: { + nix-index-database = final.runCommandLocal "nix-index-database" {} '' mkdir -p $out ln -s ${ inputs.nix-index-database.legacyPackages.${prev.system}.database } $out/files ''; - }); + }; # nixneovim = nixneovim.applyPatches { # name = "nixneovim-patched"; @@ -190,22 +194,23 @@ let # patches = [ ./patches/nixneovim.patch ]; # }; - tree-sitter-grammars = (final: prev: { - tree-sitter-grammars = prev.tree-sitter-grammars // { - tree-sitter-just = final.pkgs.tree-sitter.buildGrammar { - language = "just"; - version = "1"; - src = final.pkgs.fetchFromGitHub { - owner = "IndianBoy42"; - repo = "tree-sitter-just"; - rev = "613b3fd39183bec94bc741addc5beb6e6f17969f"; - sha256 = "sha256-OBlXwWriE6cdGn0dhpfSMnJ6Rx1Z7KcXehaamdi/TxQ"; + tree-sitter-grammars = final: prev: { + tree-sitter-grammars = + prev.tree-sitter-grammars + // { + tree-sitter-just = final.pkgs.tree-sitter.buildGrammar { + language = "just"; + version = "1"; + src = final.pkgs.fetchFromGitHub { + owner = "IndianBoy42"; + repo = "tree-sitter-just"; + rev = "613b3fd39183bec94bc741addc5beb6e6f17969f"; + sha256 = "sha256-OBlXwWriE6cdGn0dhpfSMnJ6Rx1Z7KcXehaamdi/TxQ"; + }; }; }; - }; - }); -in -[ + }; +in [ catppuccinThemes vimPlugins tree-sitter-grammars diff --git a/scripts/start-tmux.nix b/scripts/start-tmux.nix index ec1f789a..014d7d75 100644 --- a/scripts/start-tmux.nix +++ b/scripts/start-tmux.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{pkgs, ...}: pkgs.writeShellScript "start-tmux" '' live_sessions=$(${pkgs.tmux}/bin/tmux list-sessions 2>/dev/null) all_sessions=$(${pkgs.findutils}/bin/find -L ~/.config/tmux/sessions -type f -executable -printf '%f\n'| sort) diff --git a/themes/catppuccin.nix b/themes/catppuccin.nix index 356699b8..f55b83a8 100644 --- a/themes/catppuccin.nix +++ b/themes/catppuccin.nix @@ -1,13 +1,12 @@ -{ pkgs, ... }: -let - mkCatppuccin = - { owner ? "catppuccin" - , version ? "0.0.1" - , item - , rev ? "main" - , sha256 ? pkgs.lib.fakeSha256 - , override ? null - }: +{pkgs, ...}: let + mkCatppuccin = { + owner ? "catppuccin", + version ? "0.0.1", + item, + rev ? "main", + sha256 ? pkgs.lib.fakeSha256, + override ? null, + }: pkgs.stdenv.mkDerivation { inherit version override; pname = item; @@ -22,13 +21,14 @@ let ''; }; - flavors = [ "latte" "frappe" "macchiato" "mocha" ]; - mapFlavor = flavorMap: (flavor: { - name = flavor; - value = flavorMap flavor; - }) flavors; -in -{ + flavors = ["latte" "frappe" "macchiato" "mocha"]; + mapFlavor = flavorMap: + (flavor: { + name = flavor; + value = flavorMap flavor; + }) + flavors; +in { bat = mkCatppuccin { item = "bat"; sha256 = "sha256-yHt3oIjUnljARaihalcWSNldtaJfVDfmfiecYfbzGs0"; @@ -60,15 +60,15 @@ in sha256 = "sha256-czvR3bVZ0NfBmuu0JixalS7B1vf1uEGSTSUVVTclKxI"; }; - gtk = (pkgs.catppuccin-gtk.override { + gtk = pkgs.catppuccin-gtk.override { variant = "mocha"; size = "standard"; - accents = [ "mauve" ]; - tweaks = [ "normal" ]; - }); + accents = ["mauve"]; + tweaks = ["normal"]; + }; - papirus-folders = (pkgs.catppuccin-papirus-folders.override { + papirus-folders = pkgs.catppuccin-papirus-folders.override { accent = "mauve"; flavor = "mocha"; - }); + }; } diff --git a/utils/wallhaven.nix b/utils/wallhaven.nix index 548751c9..02f6175c 100644 --- a/utils/wallhaven.nix +++ b/utils/wallhaven.nix @@ -1,9 +1,10 @@ -{ pkgs, ... }: -let - getWall = { url, sha256 ? pkgs.lib.fakeSha256 }: - builtins.fetchurl { inherit url sha256; }; -in -rec { +{pkgs, ...}: let + getWall = { + url, + sha256 ? pkgs.lib.fakeSha256, + }: + builtins.fetchurl {inherit url sha256;}; +in rec { inherit getWall; # Some predefined wallpapers lights = getWall { @@ -23,6 +24,6 @@ rec { sha256 = "0vm02yg4w5bfqns5k1r8y09fqxs0qy4y886myvnp64n1maaihp4k"; }; - anime = [ frieren_3 ]; - all = [ lights shapes cloud ] ++ anime; + anime = [frieren_3]; + all = [lights shapes cloud] ++ anime; }