Compare commits

..

9 commits

Author SHA1 Message Date
9c6bc0630d
feat: phpstorm 2025-05-31 17:25:13 -07:00
9a18c250df
feat: floorp 2025-05-31 17:24:39 -07:00
49f1f933d0
feat: discord 2025-05-31 17:24:38 -07:00
b176aa7368
feat: calibre 2025-05-31 17:24:38 -07:00
10d169e85b
feat: CEmu 2025-05-31 17:24:38 -07:00
b73e2eecc5
feat: let home-manager manage its own overlays 2025-05-31 16:26:42 -07:00
411080df71
feat: done with tui migration 2025-05-31 15:57:21 -07:00
3fbc4c0642
feat: superfile 2025-05-31 15:57:04 -07:00
854edf73a0
feat: ncmpcpp 2025-05-31 15:48:52 -07:00
31 changed files with 197 additions and 1684 deletions

View file

@ -15,11 +15,6 @@
# TODO: Move these to custom modules
overlays = [
(import ./overlays/firefox-addons {
inherit (inputs.nixpkgs) lib;
inherit inputs;
})
(import ./overlays/jetbrains.nix {inherit inputs;})
(import ./overlays/wezterm.nix {inherit inputs;})
];
};

View file

@ -9,15 +9,6 @@
config.easy-hosts = {
shared.specialArgs.marleylib = import ../lib {inherit lib;};
# shared.modules = with inputs; [
# # TODO: Move module imports to custom module
# {
# home-manager.sharedModules = [
# nixcord.homeModules.nixcord
# ];
# }
# ];
perClass = class: {
modules = ["${self}/modules/${class}/default.nix"];
};

View file

@ -24,6 +24,7 @@ in {
home-manager.users."${name}" = {
marleyos = {
shell.niri.monitors = ["DP-1" "HDMI-A-1"];
programs.calibre = enabled;
services.syncthing = enabled;
};

View file

@ -16,7 +16,6 @@ in {
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "bak";
users."${my.name}" = {

View file

@ -50,18 +50,7 @@
};
};
nixpkgs = {
config = {
allowUnfree = true;
};
overlays = [
inputs.nur.overlays.default
# Custom packages
(import ../../overlays/marleyos.nix)
];
};
nixpkgs = import ./nixpkgs.nix {inherit inputs;};
# More useful repl.
environment.systemPackages = let

12
modules/base/nixpkgs.nix Normal file
View file

@ -0,0 +1,12 @@
{inputs, ...}: {
config = {
allowUnfree = true;
};
overlays = [
inputs.nur.overlays.default
# Custom packages.
(import ../../overlays/marleyos.nix)
];
}

View file

@ -1,7 +1,6 @@
{
lib,
config,
inputs,
pkgs,
...
}: let
@ -10,11 +9,6 @@ in {
options.marleyos.programs.neovim.enable = lib.mkEnableOption "neovim";
config = lib.mkIf cfg.enable {
# Has to be applied on the OS level to use in HM.
nixpkgs.overlays = [
(import ../../../overlays/marleyvim.nix {inherit inputs;})
];
environment.systemPackages = with pkgs; [
neovim
];

View file

@ -4,7 +4,9 @@ in {
marleyos = {
programs = {
fish = enabled;
floorp = enabled;
nh = enabled;
phpstorm = enabled;
wezterm = enabled;
wireguard = enabled;
};

View file

@ -1,7 +1,9 @@
{
imports = [
./fish.nix
./floorp.nix
./nh.nix
./phpstorm.nix
./wezterm.nix
./wireguard.nix
];

View file

@ -0,0 +1,13 @@
{
config,
lib,
...
}: let
cfg = config.marleyos.programs.floorp;
in {
options.marleyos.programs.floorp.enable = lib.mkEnableOption "floorp";
config = lib.mkIf cfg.enable {
homebrew.casks = ["floorp"];
};
}

View file

@ -0,0 +1,13 @@
{
config,
lib,
...
}: let
cfg = config.marleyos.programs.phpstorm;
in {
options.marleyos.programs.phpstorm.enable = lib.mkEnableOption "phpstorm";
config = lib.mkIf cfg.enable {
homebrew.casks = ["phpstorm"];
};
}

View file

@ -5,6 +5,7 @@
./options
./home-manager.nix
./nix.nix
./system
./shell

3
modules/home/nix.nix Normal file
View file

@ -0,0 +1,3 @@
{inputs, ...}: {
config.nixpkgs = import ../base/nixpkgs.nix {inherit inputs;};
}

View file

@ -48,14 +48,20 @@ in {
programs = {
amfora = enabled;
cava = enabled;
CEmu = enabled;
cheat = enabled;
discord = enabled;
floorp = enabled;
fzf = enabled;
gh = enabled;
glow = enabled;
jqp = enabled;
ncmpcpp = enabled;
nemo = enabled;
neo = enabled;
neovim = enabled;
phpstorm = enabled;
superfile = enabled;
tea = enabled;
};

View file

@ -1,6 +1,6 @@
{
lib,
config,
lib,
pkgs,
...
}: let
@ -8,7 +8,7 @@
in {
options.marleyos.programs.CEmu.enable = lib.mkEnableOption "CEmu";
config = lib.mkIf cfg.enable {
config = lib.mkIf (cfg.enable && pkgs.stdenv.isLinux) {
home.packages = with pkgs; [
# cemu-ti
marleyos.CEmu-TI-84-Plus-CE

View file

@ -1,6 +1,6 @@
{
lib,
config,
lib,
pkgs,
...
}: let

View file

@ -4,12 +4,16 @@
./amfora
./bat.nix
./btop.nix
./calibre.nix
./cava.nix
./CEmu.nix
./cheat.nix
./curl.nix
./discord.nix
./eza.nix
./figlet.nix
./fish.nix
./floorp.nix
./fuzzel.nix
./fzf.nix
./gh.nix
@ -26,13 +30,16 @@
./lazygit.nix
./less.nix
./man.nix
./ncmpcpp.nix
./nemo.nix
./neo.nix
./neovim.nix
./nh.nix
./phpstorm
./ripgrep.nix
./ssh.nix
./starship
./superfile.nix
./systemctl.nix
./tea.nix
./tmux.nix

View file

@ -1,14 +1,20 @@
{
lib,
marleylib,
config,
lib,
inputs,
...
}: let
inherit (lib.marleyos) enabled disabled;
inherit (marleylib.module) enabled disabled;
cfg = config.marleyos.programs.discord;
in {
options.marleyos.programs.discord.enable = lib.mkEnableOption "discord";
imports = [
inputs.nixcord.homeModules.nixcord
];
config = lib.mkIf cfg.enable {
programs.nixcord = {
enable = true;
@ -117,7 +123,7 @@ in {
theme = themes."${scheme}" or defaultTheme;
in {
enable = true;
theme = theme;
inherit theme;
useDevIcon = "COLOR";
};

View file

@ -1,15 +1,27 @@
{
lib,
marleylib,
config,
osConfig,
lib,
pkgs,
...
}: let
inherit (marleylib.module) mkEnableOption';
cfg = config.marleyos.programs.floorp;
osCfg = osConfig.marleyos.programs.floorp.enable or false;
in {
options.marleyos.programs.floorp.enable = lib.mkEnableOption "floorp";
options.marleyos.programs.floorp.enable = mkEnableOption' "floorp" osCfg;
config = lib.mkIf cfg.enable {
# FIXME: switch to this once it's available
nixpkgs.overlays = [
(import ../../../overlays/firefox-addons {
inherit lib;
inherit pkgs;
})
];
# FIXME: switch to this once upgraded to 25.05
# stylix.targets.floorp = {
# enable = true;
# colorTheme.enable = true;
@ -18,9 +30,10 @@ in {
programs.floorp = {
enable = true;
package = lib.mkIf pkgs.stdenv.isDarwin pkgs.emptyDirectory;
profiles = {
"${config.marleyos.my.name}" = {
"${config.marleycfg.my.name}" = {
extensions =
(with pkgs.nur.repos.rycee.firefox-addons; [
archivebox-exporter
@ -75,7 +88,7 @@ in {
# Quieter Fox - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Recommendations
"extensions.getAddons.showPane" = false; # uses google analytics
"extensions.htmlaboutaddons.reccomendations.enabled" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false;
"browser.shopping.experience2023.enabled" = false;
@ -177,7 +190,7 @@ in {
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.xul.error_pages.expert_bad_cert" = true;
# Referers - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Referrers - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"network.http.referer.XOriginTrimmingPolicy" = 2;
# Containers - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View file

@ -1,6 +1,6 @@
{
lib,
config,
lib,
...
}: let
cfg = config.marleyos.programs.ncmpcpp;

View file

@ -3,6 +3,7 @@
config,
osConfig,
lib,
inputs,
pkgs,
...
}: let
@ -15,6 +16,10 @@ in {
mkEnableOption' "neovim" osCfg.enable;
config = lib.mkIf cfg.enable {
nixpkgs.overlays = [
(import ../../../overlays/marleyvim.nix {inherit inputs;})
];
home.packages = with pkgs; [
nvim
];

View file

@ -357,7 +357,7 @@ nmap <leader>so <Action>(ShowSettings)
" Quickfix List
nmap <leader>sq <Action>(ActivateProblemsViewToolWindow)
" Resume
nmap <leader>sR :echo 'Not yet implmented.'<cr>
nmap <leader>sR :echo 'Not yet implemented.'<cr>
" Goto Symbol
nmap <leader>ss <Action>(GotoSymbol)
" Goto Symbol (Workspace)
@ -405,7 +405,7 @@ nmap <leader>dp <Action>(Pause)
" Toggle REPL
nmap <leader>dr <Action>(JShell.Console)
" Session
nmap <leader>ds :echo 'Not yet implmented.'<cr>
nmap <leader>ds :echo 'Not yet implemented.'<cr>
" Terminate
nmap <leader>dt <Action>(Stop)
" Widgets

View file

@ -0,0 +1,34 @@
{
marleylib,
config,
osConfig,
lib,
pkgs,
inputs,
...
}: let
inherit (marleylib.module) mkEnableOption';
cfg = config.marleyos.programs.phpstorm;
osCfg = osConfig.marleyos.programs.phpstorm.enable or false;
in {
options.marleyos.programs.phpstorm.enable = mkEnableOption' "phpstorm" osCfg;
config = lib.mkIf cfg.enable {
# JetBrains products are unfree.
nixpkgs = {
config.allowUnfree = lib.mkIf pkgs.stdenv.isLinux (lib.mkForce true);
overlays = [
(import ../../../../overlays/jetbrains.nix {inherit inputs;})
];
};
home.packages = lib.mkIf pkgs.stdenv.isLinux (with pkgs; [
# jetbrains.phpstorm
marleyos.phpstorm-with-node
]);
home.file.".ideavimrc".source = ./.ideavimrc;
};
}

View file

@ -0,0 +1,52 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.marleyos.programs.superfile;
in {
options.marleyos.programs.superfile.enable = lib.mkEnableOption "superfile";
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
superfile
];
xdg.configFile."superfile/config.toml".text =
# https://superfile.netlify.app/configure/superfile-config/
# toml
''
theme = "${config.lib.stylix.colors.scheme-name}"
editor = "" # use $EDITOR
auto_check_update = false
cd_on_quit = false
default_open_file_preview = true
default_directory = "."
# Display file sizes using powers of 1000 (kb, MB, GB) instead of powers
# of 1024 (KiB, MiB, GiB).
file_size_use_si = false
# Style - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nerfont = true
transparent_background = false
file_preview_width = 0
sidebar_width = 20
border_top = ''
border_bottom = ''
border_left = ''
border_right = ''
border_top_left = ''
border_top_right = ''
border_bottom_left = ''
border_bottom_right = ''
border_middle_left = ''
border_middle_right = ''
# Plugins - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
metadata = false # requires exiftool
enable_md5_checksum = false
'';
};
}

View file

@ -1,11 +1,11 @@
{
lib,
inputs,
pkgs,
...
}: let
buildFirefoxXpiAddon = lib.makeOverridable ({
stdenv ? inputs.nixpkgs.stdenv,
fetchurl ? inputs.nixpkgs.fetchurl,
stdenv ? pkgs.stdenv,
fetchurl ? pkgs.fetchurl,
pname,
version,
addonId,
@ -35,7 +35,7 @@
in
_: prev: {
marleyos =
prev.marleyos
(prev.marleyos or {})
// {
firefox-addons = import ./addons.nix {
inherit buildFirefoxXpiAddon lib;

View file

@ -1,3 +1,8 @@
{inputs}: _: _: {
inherit (inputs.nixpkgs-unstable) jetbrains jetbrains-toolbox;
{inputs}: final: _: let
unstable = import inputs.nixpkgs-unstable {
inherit (final) system;
config.allowUnfree = true;
};
in {
inherit (unstable) jetbrains jetbrains-toolbox;
}

File diff suppressed because it is too large Load diff

View file

@ -1,22 +0,0 @@
{
lib,
config,
pkgs,
...
}: let
cfg = config.marleyos.programs.phpstorm;
in {
options.marleyos.programs.phpstorm.enable = lib.mkEnableOption "phpstorm";
config = lib.mkIf cfg.enable {
# JetBrains products are unfree.
nixpkgs.config.allowUnfree = lib.mkForce true;
home.packages = with pkgs; [
# jetbrains.phpstorm
marleyos.phpstorm-with-node
];
home.file.".ideavimrc".source = ./.ideavimrc;
};
}

View file

@ -1,25 +0,0 @@
{
lib,
config,
...
}: let
cfg = config.marleyos.programs.tui;
inherit (lib.marleyos) enabled;
in {
options.marleyos.programs.tui.enable = lib.mkEnableOption "tui";
config = lib.mkIf cfg.enable {
marleyos.programs = {
amfora = enabled;
btop = enabled;
cava = enabled;
jqp = enabled;
lazydocker = enabled;
lazygit = enabled;
ncmpcpp = enabled;
neovim = enabled;
superfile = enabled;
};
};
}

View file

@ -1,57 +0,0 @@
# More details are at https://superfile.netlify.app/configure/superfile-config/
#
# change your theme
# TODO: set this via stylix
theme = 'rose-pine'
#
# The editor files/directories will be opened with. (leave blank to use the EDITOR environment variable).
editor = ""
#
# Auto check for update
auto_check_update = false
#
# Cd on quit (For more details, please check out https://superfile.netlify.app/configure/superfile-config/#cd_on_quit)
cd_on_quit = false
#
# Whether to open file preview automatically every time superfile is opened.
default_open_file_preview = true
#
# The path of the first file panel when superfile is opened. (DON'T USE '~')
default_directory = "."
#
# Display file sizes using powers of 1000 (kB, MB, GB) instead of powers of 1024 (KiB, MiB, GiB).
file_size_use_si = false
#
# ================ Style =================
#
# If you don't have or don't want Nerdfont installed you can turn this off
nerdfont = true
#
# Set transparent background or not (this only work when your terminal background is transparent)
transparent_background = false
#
# File preview width allow '0' (this mean same as file panel),'x' x must be less than 10 and greater than 1 (This means that the width of the file preview will be one xth of the total width.)
file_preview_width = 0
#
# The length of the sidebar. If you don't want to display the sidebar, you can input 0 directly. If you want to display the value, please place it in the range of 3-20.
sidebar_width = 20
#
# Border style
border_top = '─'
border_bottom = '─'
border_left = '│'
border_right = '│'
border_top_left = '╭'
border_top_right = '╮'
border_bottom_left = '╰'
border_bottom_right = '╯'
border_middle_left = '├'
border_middle_right = '┤'
#
# ==========PLUGINS========== #
#
# Show more detailed metadata, please install exiftool before enabling this plugin!
metadata = false
#
# Enable MD5 checksum generation for files
enable_md5_checksum = false

View file

@ -1,18 +0,0 @@
{
lib,
config,
pkgs,
...
}: let
cfg = config.marleyos.programs.superfile;
in {
options.marleyos.programs.superfile.enable = lib.mkEnableOption "superfile";
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
superfile
];
xdg.configFile."superfile/config.toml".source = ./config.toml;
};
}