From e0dffb350dc9a756f90885e9985fce2d7689602e Mon Sep 17 00:00:00 2001 From: uttarayan21 Date: Sun, 17 Mar 2024 02:45:41 +0530 Subject: [PATCH] [feat] Add some stuff --- common/firefox.nix | 27 +++++++------ common/home.nix | 6 +++ common/tuifeed.nix | 14 +++++++ linux/hyprland.nix | 30 +++++++-------- linux/ironbar/default.nix | 4 +- modules/tuifeed.nix | 51 +++++++++++++++++++++++++ overlays.nix | 79 ++++++++++++++++++++++++++++++++++++--- 7 files changed, 177 insertions(+), 34 deletions(-) create mode 100644 common/tuifeed.nix create mode 100644 modules/tuifeed.nix diff --git a/common/firefox.nix b/common/firefox.nix index 0b2a6e5d..6425e71e 100644 --- a/common/firefox.nix +++ b/common/firefox.nix @@ -2,18 +2,21 @@ 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 '' - @import url(${csshacks}/chrome/toolbars_below_content.css); - @import url(${csshacks}/chrome/scrollable_menupopups.css); - @import url(${csshacks}/chrome/linux_gtk_window_control_patch.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); */ + /* @import url(${csshacks}/chrome/linux_gtk_window_control_patch.css); */ + ''; extensions = with pkgs.nur.repos.rycee.firefox-addons; [ privacy-badger bitwarden diff --git a/common/home.nix b/common/home.nix index c91b4d62..a8b39167 100644 --- a/common/home.nix +++ b/common/home.nix @@ -5,10 +5,16 @@ ./wezterm.nix ./nvim.nix ./goread.nix + ./tuifeed.nix ] ++ lib.optionals device.isLinux [ ../linux ]; home.packages = with pkgs; [ + tuifeed + russ + picat + spotdl + davis music-player pandoc gnupg diff --git a/common/tuifeed.nix b/common/tuifeed.nix new file mode 100644 index 00000000..7778b647 --- /dev/null +++ b/common/tuifeed.nix @@ -0,0 +1,14 @@ +{ ... }: { + imports = [ ../modules/tuifeed.nix ]; + programs.tuifeed = { + enable = true; + config = { + sources = { + "r/rust" = "https://www.reddit.com/r/rust/.rss"; + "thesquareplanet" = "https://thesquareplanet.com/feed.xml"; + "Jon Gjengset (YouTube)" = "https://www.youtube.com/feeds/videos.xml?channel_id=UC_iD0xppBwwsrM9DegC5cQQ"; + }; + }; + }; + +} diff --git a/linux/hyprland.nix b/linux/hyprland.nix index 81c7109c..e63c8551 100644 --- a/linux/hyprland.nix +++ b/linux/hyprland.nix @@ -8,8 +8,8 @@ systemd.target = "hyprland-session.target"; settings.preload = wallpapers.all; settings.wallpapers = { - "DP-4" = wallpapers.frieren_3; - "DP-2" = wallpapers.shapes; + "DP-3" = wallpapers.frieren_3; + "DP-1" = wallpapers.shapes; }; }; wayland.windowManager.hyprland = { @@ -19,8 +19,8 @@ source = "${pkgs.catppuccinThemes.hyprland}/themes/mocha.conf"; monitor = [ ",preferred,auto,auto" - "DP-4, 2560x1440@170, 0x0, 1, transform, 0" - "DP-2, 2560x1440@170, -1440x-800,1, transform, 1" + "DP-3, 2560x1440@170, 0x0, 1, transform, 0" + "DP-1, 2560x1440@170, -1440x-800,1, transform, 1" ",highrr,auto,1" ]; @@ -31,7 +31,7 @@ kb_options = "ctrl:nocaps"; # kb_rules = ""; - # follow_mouse = 0; + follow_mouse = 2; touchpad = { natural_scroll = true; @@ -217,16 +217,16 @@ ]; workspace = [ - "1, monitor:DP-4" - "2, monitor:DP-4" - "3, monitor:DP-4" - "4, monitor:DP-4" - "5, monitor:DP-4" - "6, monitor:DP-4" - "7, monitor:DP-4" - "8, monitor:DP-2" - "9, monitor:DP-2" - "10, monitor:DP-2" + "1, monitor:DP-3" + "2, monitor:DP-3" + "3, monitor:DP-3" + "4, monitor:DP-3" + "5, monitor:DP-3" + "6, monitor:DP-3" + "7, monitor:DP-3" + "8, monitor:DP-1" + "9, monitor:DP-1" + "10, monitor:DP-1" ]; }; }; diff --git a/linux/ironbar/default.nix b/linux/ironbar/default.nix index 74b4f561..f6b3c909 100644 --- a/linux/ironbar/default.nix +++ b/linux/ironbar/default.nix @@ -3,7 +3,7 @@ programs.ironbar = { enable = true; config.monitors = { - DP-2 = { + DP-1 = { position = "bottom"; start = [ { @@ -28,7 +28,7 @@ { type = "clock"; } ]; }; - DP-4 = { + DP-3 = { position = "bottom"; icon_theme = "Papirus-Dark"; end = [ diff --git a/modules/tuifeed.nix b/modules/tuifeed.nix new file mode 100644 index 00000000..66150eee --- /dev/null +++ b/modules/tuifeed.nix @@ -0,0 +1,51 @@ +{ 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"; + + config = with types; { + sources = mkOption { + type = attrsOf str; + default = { }; + description = '' + Urls that will be fetched ~/.config/tuifeed/urls.yml + ''; + example = { }; + }; + + article_title = mkOption { + type = attrsOf bool; + default = { + "show-author" = true; + "show-timestamp" = true; + }; + description = '' + Urls that will be fetched ~/.config/tuifeed/urls.yml + ''; + example = { }; + }; + + }; + }; + }; + + config = { + home.packages = mkIf cfg.enable [ pkgs.tuifeed ]; + + xdg.configFile = mkIf cfg.enable { + "tuifeed/config.toml".source = tomlFormat.generate "tuifeed-config" { + sources = cfg.config.sources; + "article-title" = cfg.config.article_title; + }; + }; + + }; +} diff --git a/overlays.nix b/overlays.nix index 2125bcef..5e7848df 100644 --- a/overlays.nix +++ b/overlays.nix @@ -24,13 +24,81 @@ let 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 + final.rustPlatform.buildRustPackage { + pname = cargoToml.package.name; + version = cargoToml.package.version; + src = davis-src; + cargoLock = { lockFile = "${davis-src}/Cargo.lock"; }; + buildPhase = '' + runHook cargoBuildHook + runHook cargoInstallPostBuildHook + ''; + runtimeInputs = [ final.pkgs.picat ]; + buildInputs = [ final.pkgs.picat ]; + installPhase = '' + mkdir -p $out/bin + cp $bins $out/bin + cp $src/subcommands/cur/davis-cur-vertical $out/bin + cp $src/subcommands/cur/davis-cur-horizontal $out/bin + cp $src/subcommands/cover/davis-cover $out/bin + ''; + }; + + 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"; }; + }; + + # russ = + # let + # src = final.pkgs.fetchFromGitHub { + # owner = "ckampfe"; + # repo = "russ"; + # rev = "master"; + # sha256 = "sha256-WJ/arI1zwt5UJNxo3MowKxof4wjROhgoRcfEYqWkYB8"; + # }; + # cargoToml = builtins.fromTOML (builtins.readFile "${src}/Cargo.toml"); + # in + # final.pkgs.rustPlatform.buildRustPackage rec { + # pname = cargoToml.package.name; + # version = cargoToml.package.version; + # inherit src; + # doCheck = false; + # cargoLock = { lockFile = "${src}/Cargo.lock"; }; + # }; + + }; anyrun-overlay = final: prev: { anyrun = inputs.anyrun.packages.${prev.system}.anyrun; 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; }; vimPlugins = final: prev: { @@ -89,14 +157,15 @@ let }; }; 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" { } '' mkdir -p $out - ln -s ${inputs.nix-index-database.legacyPackages.${prev.system}.database} $out/files + ln -s ${ + inputs.nix-index-database.legacyPackages.${prev.system}.database + } $out/files ''; });