refactor: massively overhaul home manager module system

This commit is contained in:
Youwen Wu 2024-12-25 19:47:59 -08:00
parent b2270408fc
commit a506d2aed4
Signed by: youwen5
GPG key ID: 865658ED1FE61EC3
64 changed files with 5201 additions and 64 deletions

View file

@ -115,25 +115,26 @@
systems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
# "aarch64-darwin"
# aarch64-darwin is currently disabled due to lack of maintenance
];
flake = {
nixosConfigurations = {
demeter = buildLiminalOS {
inherit inputs nixpkgs;
systemModule = ./hosts/demeter;
systemModule = ./reference/hosts/demeter;
};
callisto = buildLiminalOS {
inherit nixpkgs inputs;
systemModule = ./hosts/callisto;
systemModule = ./reference/hosts/callisto;
};
adrastea = buildLiminalOS {
inherit inputs nixpkgs;
systemModule = ./hosts/adrastea;
systemModule = ./reference/hosts/adrastea;
};
cassini = buildLiminalOS {
inherit inputs nixpkgs;
systemModule = ./hosts/cassini;
systemModule = ./reference/hosts/cassini;
};
};
darwinConfigurations.phobos = nix-darwin.lib.darwinSystem {
@ -146,7 +147,12 @@
};
};
perSystem =
{ pkgs, system, ... }:
{
pkgs,
system,
config,
...
}:
{
formatter = pkgs.nixfmt-rfc-style;
@ -164,6 +170,16 @@
inputs.viminal.packages.${system}.default
];
};
nixosModules = {
default = config.nixosModules.liminalOS;
liminalOS = ./modules/default.nix;
};
homeManagerModules = {
default = config.homeManagerModules.liminalOS;
liminalOS = ./hm/modules/default.nix;
};
};
};
}

29
hm/default.nix Normal file
View file

@ -0,0 +1,29 @@
{
inputs,
config,
lib,
...
}:
let
cfg = config.liminalOS;
in
{
imports = [
inputs.home-manager.nixosModules.home-manager
];
options.liminalOS.integrateHomeManager = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to activate home manager with default options. Keep in mind you still have to import the liminalOS home-manager module.
'';
};
config.home-manager = lib.mkIf cfg.integrateHomeManager {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup";
extraSpecialArgs = { inherit inputs; };
};
}

View file

@ -0,0 +1,10 @@
{
imports = [ ./shellenv ];
# Let home Manager install and manage itself.
programs.home-manager.enable = true;
home.file.".essentials" = {
source = ./essentials;
recursive = true;
};
}

View file

@ -0,0 +1 @@
This place contains all of the stuff that is too hard or unwieldy to manage fully with nix, but is still useful to have ready on every system.

View file

@ -0,0 +1 @@
{"locale":"en","widget/QmFu0MVUS_uo":null,"widget/cMOmcy4ZqrjS":null,"widget/i54ELqP74_Sv":null,"widget/B_kz3lJkUxlp":null,"widget/Yvubo6Zu9lT8":null,"widget/MHcdYwMetd1i":null,"timeZone":null,"widget/Dj61R7yvYklL":null,"data/He0QCGvD65VV":{"messages":["There is no system but GNU, and Linux is one of its kernels."]},"widget/RuC5niQwKdxR":null,"widget/LCUpMUdJn0Yf":null,"widget/yJ9fL4n4XbdH":null,"widget/FkVDvMgaeXIG":null,"widget/L8ulAGK5O_0u":{"id":"L8ulAGK5O_0u","key":"widget/literature-clock","order":1,"display":{"position":"middleCentre","fontFamily":"Lora"}},"data/default-unsplash":{"by":"topics","collections":"","featured":false,"paused":false,"search":"","topics":"xHxYTMHLgOc","timeout":900},"data/y8f2hoHcUia3":{"columns":3,"links":[{"url":"https://github.com/","icon":"github"},{"url":"https://www.youtube.com/","icon":"youtube"},{"url":"https://github.com/youwen5","icon":"user"}],"visible":true,"linkOpenStyle":false},"widget/sqbQm1Apn-Ad":null,"widget/1SHRYajLSARQ":{"id":"1SHRYajLSARQ","key":"widget/weather","order":0,"display":{"position":"topCentre","fontSize":26,"fontFamily":"Lora"}},"widget/He0QCGvD65VV":{"id":"He0QCGvD65VV","key":"widget/message","order":5,"display":{"position":"bottomCentre","fontFamily":"Lora","fontWeight":400}},"widget/y8f2hoHcUia3":{"id":"y8f2hoHcUia3","key":"widget/links","order":4,"display":{"position":"middleCentre"}},"widget/KNX14ZQq5_lc":{"id":"KNX14ZQq5_lc","key":"widget/css","order":2,"display":{"position":"middleCentre","fontFamily":""}},"widget/rOHrlmChb_Sp":null,"data/KNX14ZQq5_lc":{"input":"\n.Widget .LiteratureClock {\n padding: 20px;\n background-color: rgba(0,0,0,0.1);\n border-radius: 20px;\n backdrop-filter: blur(4px);\n font-size: 1.2em;\n max-width: 800px;\n}\n\n.Widget .Message {\n margin-bottom: 60px;\n}\n\n\n.Widget {\n user-select: none;\n}\n\n.Widget .Weather {\n padding: 20px;\n}\n\n.Widget .Links {\n margin-top: 40px;\n}\n.Widget .Links a:hover {\n scale: 1.15;\n}"},"background":{"id":"default-unsplash","key":"background/unsplash","display":{"luminosity":-0.2,"blur":0}},"widget/default-time":null,"widget/default-greeting":null,"focus":false,"data/1SHRYajLSARQ":{"showDetails":false,"units":"us","latitude":34.4133,"longitude":-119.861,"name":"Isla Vista"},"version":3}

View file

@ -0,0 +1,617 @@
{
"settings": {
"autoUpdate": true,
"autoUpdateNotification": true,
"useQuickCss": true,
"themeLinks": [
"https://raw.githubusercontent.com/catppuccin/discord/main/themes/macchiato.theme.css"
],
"enabledThemes": [
"stylix.theme.css"
],
"enableReactDevtools": false,
"frameless": false,
"transparent": false,
"winCtrlQ": false,
"disableMinSize": false,
"winNativeTitleBar": false,
"plugins": {
"ChatInputButtonAPI": {
"enabled": false
},
"CommandsAPI": {
"enabled": true
},
"MemberListDecoratorsAPI": {
"enabled": false
},
"MessageAccessoriesAPI": {
"enabled": true
},
"MessageDecorationsAPI": {
"enabled": false
},
"MessageEventsAPI": {
"enabled": true
},
"MessagePopoverAPI": {
"enabled": false
},
"MessageUpdaterAPI": {
"enabled": false
},
"ServerListAPI": {
"enabled": true
},
"UserSettingsAPI": {
"enabled": true
},
"AlwaysAnimate": {
"enabled": false
},
"AlwaysTrust": {
"enabled": true,
"domain": true,
"file": true
},
"AnonymiseFileNames": {
"enabled": true,
"anonymiseByDefault": true,
"method": 0,
"randomisedLength": 7
},
"AppleMusicRichPresence": {
"enabled": false
},
"WebRichPresence (arRPC)": {
"enabled": false
},
"AutomodContext": {
"enabled": false
},
"BANger": {
"enabled": false
},
"BetterFolders": {
"enabled": true,
"sidebar": true,
"showFolderIcon": 1,
"keepIcons": false,
"closeAllHomeButton": false,
"closeAllFolders": false,
"forceOpen": false,
"sidebarAnim": true
},
"BetterGifAltText": {
"enabled": false
},
"BetterGifPicker": {
"enabled": false
},
"BetterNotesBox": {
"enabled": false
},
"BetterRoleContext": {
"enabled": false
},
"BetterRoleDot": {
"enabled": true,
"bothStyles": false,
"copyRoleColorInProfilePopout": false
},
"BetterSessions": {
"enabled": true,
"backgroundCheck": false
},
"BetterSettings": {
"enabled": false,
"disableFade": true,
"eagerLoad": true
},
"BetterUploadButton": {
"enabled": false
},
"BiggerStreamPreview": {
"enabled": false
},
"BlurNSFW": {
"enabled": false
},
"CallTimer": {
"enabled": true
},
"ClearURLs": {
"enabled": true
},
"ClientTheme": {
"enabled": false
},
"ColorSighted": {
"enabled": false
},
"ConsoleJanitor": {
"enabled": false
},
"ConsoleShortcuts": {
"enabled": false
},
"CopyEmojiMarkdown": {
"enabled": false
},
"CopyUserURLs": {
"enabled": true
},
"CrashHandler": {
"enabled": true
},
"CtrlEnterSend": {
"enabled": false
},
"CustomRPC": {
"enabled": false
},
"CustomIdle": {
"enabled": false
},
"Dearrow": {
"enabled": false
},
"Decor": {
"enabled": false
},
"DisableCallIdle": {
"enabled": false
},
"DontRoundMyTimestamps": {
"enabled": false
},
"EmoteCloner": {
"enabled": false
},
"Experiments": {
"enabled": false
},
"F8Break": {
"enabled": false
},
"FakeNitro": {
"enabled": false
},
"FakeProfileThemes": {
"enabled": false
},
"FavoriteEmojiFirst": {
"enabled": false
},
"FavoriteGifSearch": {
"enabled": false
},
"FixCodeblockGap": {
"enabled": false
},
"FixSpotifyEmbeds": {
"enabled": false
},
"FixYoutubeEmbeds": {
"enabled": false
},
"ForceOwnerCrown": {
"enabled": false
},
"FriendInvites": {
"enabled": false
},
"FriendsSince": {
"enabled": false
},
"GameActivityToggle": {
"enabled": false
},
"GifPaste": {
"enabled": false
},
"GreetStickerPicker": {
"enabled": false
},
"HideAttachments": {
"enabled": false
},
"iLoveSpam": {
"enabled": false
},
"IgnoreActivities": {
"enabled": false
},
"ImageLink": {
"enabled": false
},
"ImageZoom": {
"enabled": false
},
"ImplicitRelationships": {
"enabled": false
},
"InvisibleChat": {
"enabled": false
},
"KeepCurrentChannel": {
"enabled": false
},
"LastFMRichPresence": {
"enabled": false
},
"LoadingQuotes": {
"enabled": false
},
"MaskedLinkPaste": {
"enabled": false
},
"MemberCount": {
"enabled": false
},
"MessageClickActions": {
"enabled": false
},
"MessageLatency": {
"enabled": false
},
"MessageLinkEmbeds": {
"enabled": false
},
"MessageLogger": {
"enabled": false
},
"MessageTags": {
"enabled": false
},
"MoreCommands": {
"enabled": false
},
"MoreKaomoji": {
"enabled": false
},
"MoreUserTags": {
"enabled": false
},
"Moyai": {
"enabled": false
},
"MutualGroupDMs": {
"enabled": false
},
"NewGuildSettings": {
"enabled": false
},
"NoBlockedMessages": {
"enabled": false
},
"NoDefaultHangStatus": {
"enabled": false
},
"NoDevtoolsWarning": {
"enabled": false
},
"NoF1": {
"enabled": false
},
"NoMosaic": {
"enabled": false
},
"NoOnboardingDelay": {
"enabled": false
},
"NoPendingCount": {
"enabled": false
},
"NoProfileThemes": {
"enabled": false
},
"NoReplyMention": {
"enabled": false
},
"NoScreensharePreview": {
"enabled": false
},
"NoServerEmojis": {
"enabled": false
},
"NoTypingAnimation": {
"enabled": false
},
"NoUnblockToJump": {
"enabled": false
},
"NormalizeMessageLinks": {
"enabled": false
},
"NotificationVolume": {
"enabled": false
},
"NSFWGateBypass": {
"enabled": false
},
"OnePingPerDM": {
"enabled": false
},
"oneko": {
"enabled": false
},
"OpenInApp": {
"enabled": false
},
"OverrideForumDefaults": {
"enabled": false
},
"PartyMode": {
"enabled": false
},
"PauseInvitesForever": {
"enabled": false
},
"PermissionFreeWill": {
"enabled": false
},
"PermissionsViewer": {
"enabled": false
},
"petpet": {
"enabled": false
},
"PictureInPicture": {
"enabled": false
},
"PinDMs": {
"enabled": false
},
"PlainFolderIcon": {
"enabled": false
},
"PlatformIndicators": {
"enabled": false
},
"PreviewMessage": {
"enabled": false
},
"QuickMention": {
"enabled": false
},
"QuickReply": {
"enabled": false
},
"ReactErrorDecoder": {
"enabled": false
},
"ReadAllNotificationsButton": {
"enabled": true
},
"RelationshipNotifier": {
"enabled": false
},
"ReplaceGoogleSearch": {
"enabled": false
},
"ReplyTimestamp": {
"enabled": false
},
"RevealAllSpoilers": {
"enabled": false
},
"ReverseImageSearch": {
"enabled": false
},
"ReviewDB": {
"enabled": false
},
"RoleColorEverywhere": {
"enabled": false
},
"SecretRingToneEnabler": {
"enabled": false
},
"Summaries": {
"enabled": false
},
"SendTimestamps": {
"enabled": false
},
"ServerInfo": {
"enabled": false
},
"ServerListIndicators": {
"enabled": false
},
"ShikiCodeblocks": {
"enabled": false
},
"ShowAllMessageButtons": {
"enabled": false
},
"ShowConnections": {
"enabled": false
},
"ShowHiddenChannels": {
"enabled": true,
"showMode": 0,
"hideUnreads": true
},
"ShowHiddenThings": {
"enabled": true,
"showTimeouts": true,
"showInvitesPaused": true,
"showModView": true,
"disableDiscoveryFilters": true,
"disableDisallowedDiscoveryFilters": true
},
"ShowMeYourName": {
"enabled": false
},
"ShowTimeoutDuration": {
"enabled": false
},
"SilentMessageToggle": {
"enabled": false
},
"SilentTyping": {
"enabled": false
},
"SortFriendRequests": {
"enabled": false
},
"SpotifyControls": {
"enabled": true,
"hoverControls": false
},
"SpotifyCrack": {
"enabled": false
},
"SpotifyShareCommands": {
"enabled": false
},
"StartupTimings": {
"enabled": false
},
"StreamerModeOnStream": {
"enabled": false
},
"SuperReactionTweaks": {
"enabled": false
},
"TextReplace": {
"enabled": false
},
"ThemeAttributes": {
"enabled": false
},
"TimeBarAllActivities": {
"enabled": false
},
"Translate": {
"enabled": false
},
"TypingIndicator": {
"enabled": false
},
"TypingTweaks": {
"enabled": false
},
"Unindent": {
"enabled": false
},
"UnlockedAvatarZoom": {
"enabled": false
},
"UnsuppressEmbeds": {
"enabled": false
},
"UserVoiceShow": {
"enabled": false
},
"USRBG": {
"enabled": false
},
"ValidReply": {
"enabled": false
},
"ValidUser": {
"enabled": false
},
"VoiceChatDoubleClick": {
"enabled": false
},
"VcNarrator": {
"enabled": false
},
"VencordToolbox": {
"enabled": false
},
"ViewIcons": {
"enabled": false
},
"ViewRaw": {
"enabled": false
},
"VoiceDownload": {
"enabled": false
},
"VoiceMessages": {
"enabled": false
},
"WebKeybinds": {
"enabled": true
},
"WebScreenShareFixes": {
"enabled": true
},
"WhoReacted": {
"enabled": false
},
"XSOverlay": {
"enabled": false
},
"NoTrack": {
"enabled": true,
"disableAnalytics": true
},
"WebContextMenus": {
"enabled": true,
"addBack": true
},
"Settings": {
"enabled": true,
"settingsLocation": "aboveNitro"
},
"SupportHelper": {
"enabled": true
},
"YoutubeAdblock": {
"enabled": true
},
"AlwaysExpandRoles": {
"enabled": false
},
"FullSearchContext": {
"enabled": false
},
"UserMessagesPronouns": {
"enabled": false
},
"DynamicImageModalAPI": {
"enabled": false
},
"AccountPanelServerProfile": {
"enabled": false
},
"CopyFileContents": {
"enabled": false
},
"FixImagesQuality": {
"enabled": false
},
"MentionAvatars": {
"enabled": false
},
"NoMaskedUrlPaste": {
"enabled": false
},
"StickerPaste": {
"enabled": false
},
"VolumeBooster": {
"enabled": false
}
},
"notifications": {
"timeout": 5000,
"position": "bottom-right",
"useNative": "not-focused",
"logLimit": 50
},
"cloud": {
"authenticated": false,
"url": "https://api.vencord.dev/",
"settingsSync": false,
"settingsSyncVersion": 1730351821316
}
},
"quickCss": ""
}

View file

@ -0,0 +1,212 @@
{
config,
lib,
inputs,
pkgs,
osConfig,
...
}:
let
cfg = config.liminalOS;
in
{
imports = [
inputs.nix-index-database.hmModules.nix-index
./fastfetch
];
options.liminalOS.shellEnv = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to set up a CLI development environment.
'';
};
};
config = lib.mkIf cfg.shellEnv.enable {
programs.bash.enable = true;
programs.nushell = {
enable = true;
configFile.text = ''
$env.config = {
edit_mode: vi,
show_banner: false
}
'';
};
programs.fzf = {
enable = true;
};
programs.git = {
enable = true;
userName = lib.mkDefault "liminalOS user";
userEmail = lib.mkDefault "liminalOS@localhost";
delta.enable = true;
maintenance.enable = true;
extraConfig = {
init.defaultBranch = "main";
safe.directory = [
osConfig.liminalOS.flakeLocation
];
};
};
home.packages = [ pkgs.git-absorb ];
programs.lazygit = {
enable = true;
settings = {
git.paging = {
colorArg = "always";
pager = "delta --dark --paging=never";
};
};
};
programs.bat.enable = true;
programs.ripgrep.enable = true;
programs.readline = {
enable = true;
extraConfig = "set editing-mode vi";
};
programs.zoxide = {
enable = true;
enableFishIntegration = true;
enableNushellIntegration = true;
enableBashIntegration = true;
};
programs.gh = {
enable = true;
};
programs.starship = {
enable = true;
enableFishIntegration = true;
enableBashIntegration = true;
enableNushellIntegration = true;
};
home.file.".config/starship.toml".text = builtins.readFile ./jetpack.toml;
programs.direnv = {
enable = true;
nix-direnv.enable = true;
config.global.hide_env_diff = true;
};
programs.fish = {
enable = true;
shellAliases = {
ls = "eza -l --icons=auto";
neofetch = "${pkgs.fastfetch}/bin/fastfetch";
};
interactiveShellInit = ''
fish_vi_key_bindings
set -g fish_greeting
'';
plugins = [
{
name = "autopair";
src = pkgs.fetchFromGitHub {
owner = "jorgebucaran";
repo = "autopair.fish";
rev = "4d1752ff5b39819ab58d7337c69220342e9de0e2";
hash = "sha256-qt3t1iKRRNuiLWiVoiAYOu+9E7jsyECyIqZJ/oRIT1A=";
};
}
{
name = "fzf";
src = pkgs.fetchFromGitHub {
owner = "PatrickF1";
repo = "fzf.fish";
rev = "8920367cf85eee5218cc25a11e209d46e2591e7a";
hash = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM=";
};
}
{
name = "sponge";
src = pkgs.fetchFromGitHub {
owner = "meaningful-ooo";
repo = "sponge";
rev = "384299545104d5256648cee9d8b117aaa9a6d7be";
hash = "sha256-MdcZUDRtNJdiyo2l9o5ma7nAX84xEJbGFhAVhK+Zm1w=";
};
}
{
name = "done";
src = pkgs.fetchFromGitHub {
owner = "franciscolourenco";
repo = "done";
rev = "eb32ade85c0f2c68cbfcff3036756bbf27a4f366";
hash = "sha256-DMIRKRAVOn7YEnuAtz4hIxrU93ULxNoQhW6juxCoh4o=";
};
}
];
};
programs.nix-index = {
enable = true;
enableBashIntegration = true;
enableFishIntegration = true;
};
programs.nix-index-database.comma.enable = true;
programs.fd.enable = true;
programs.btop = {
enable = true;
settings = {
vim_keys = true;
theme_background = false;
};
};
programs.eza = {
enable = true;
enableFishIntegration = true;
enableBashIntegration = true;
git = true;
};
programs.yazi = {
enable = true;
enableBashIntegration = true;
enableFishIntegration = true;
plugins = {
mediainfo = pkgs.fetchFromGitHub {
owner = "Ape";
repo = "mediainfo.yazi";
rev = "c69314e80f5b45fe87a0e06a10d064ed54110439";
hash = "sha256-8xdBPdKSiwB7iRU8DJdTHY+BjfR9D3FtyVtDL9tNiy4=";
};
};
settings = {
plugin = {
prepend_previewers = [
{
mime = "{image,audio,video}/*";
run = "mediainfo";
}
{
mime = "application/x-subrip";
run = "mediainfo";
}
];
};
};
};
programs.zathura.enable = true;
};
}

View file

@ -0,0 +1,81 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"display": {
"separator": " "
},
"modules": [
"break",
"break",
"break",
"break",
"break",
{
"type": "title",
"keyWidth": 10
},
"break",
{
"type": "os",
"key": " ",
"keyColor": "34",
"format": "{3} on {12}"
},
{
"type": "kernel",
"key": " ",
"keyColor": "34"
},
{
"type": "packages",
"key": " ",
"keyColor": "34"
},
{
"type": "shell",
"key": " ",
"keyColor": "34"
},
{
"type": "terminal",
"key": " ",
"keyColor": "34"
},
{
"type": "wm",
"key": " ",
"keyColor": "34"
},
{
"type": "CPU",
"key": " ",
"keyColor": "34"
},
{
"type": "GPU",
"key": "󰍹 ",
"keyColor": "34"
},
{
"type": "uptime",
"key": " ",
"keyColor": "34"
},
{
"type": "media",
"key": "󰝚 ",
"keyColor": "34"
},
{
"type": "player",
"key": " ",
"keyColor": "34"
},
"break",
{
"type": "custom",
"format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m "
},
"break",
"break"
]
}

View file

@ -0,0 +1,39 @@
{ config, lib, ... }:
let
fastfetchConfig = builtins.fromJSON (builtins.readFile ./config.json);
cfg = config.liminalOS.shellEnv.fastfetch;
in
{
options.liminalOS.shellEnv.fastfetch = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.shellEnv.enable;
description = ''
Whether to set up and configure fastfetch.
'';
};
useKittyImage = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to use the kitty image protocol.
'';
};
};
config.programs.fastfetch = lib.mkIf cfg.enable {
enable = true;
settings = (
fastfetchConfig
// {
logo = {
height = 18;
padding = {
top = 2;
};
type = if cfg.useKittyImage then "kitty" else "auto";
source = lib.mkIf cfg.useKittyImage ./nixos-logo.png;
};
}
);
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,315 @@
# version: 1.0.0
add_newline = false
continuation_prompt = "[▸▹ ](dimmed white)"
format = """( $nix_shell$container$fill$git_metrics\n)$cmd_duration\
$hostname\
$localip\
$shlvl\
$shell\
$env_var\
$jobs\
$sudo\
$username\
$character"""
right_format = """
$singularity\
$kubernetes\
$directory\
$vcsh\
$fossil_branch\
$git_branch\
$git_commit\
$git_state\
$git_status\
$hg_branch\
$pijul_channel\
$docker_context\
$package\
$c\
$cmake\
$cobol\
$daml\
$dart\
$deno\
$dotnet\
$elixir\
$elm\
$erlang\
$fennel\
$golang\
$guix_shell\
$haskell\
$haxe\
$helm\
$java\
$julia\
$kotlin\
$gradle\
$lua\
$nim\
$nodejs\
$ocaml\
$opa\
$perl\
$php\
$pulumi\
$purescript\
$python\
$raku\
$rlang\
$red\
$ruby\
$rust\
$scala\
$solidity\
$swift\
$terraform\
$vlang\
$vagrant\
$zig\
$buf\
$conda\
$meson\
$spack\
$memory_usage\
$aws\
$gcloud\
$openstack\
$azure\
$crystal\
$custom\
$status\
$os\
$battery\
$time"""
[fill]
symbol = ' '
[character]
format = "$symbol "
success_symbol = "[◎](bold italic bright-yellow)"
error_symbol = "[○](italic purple)"
vimcmd_symbol = "[■](italic dimmed green)"
# not supported in zsh
vimcmd_replace_one_symbol = "◌"
vimcmd_replace_symbol = "□"
vimcmd_visual_symbol = "▼"
[env_var.VIMSHELL]
format = "[$env_value]($style)"
style = 'green italic'
[sudo]
format = "[$symbol]($style)"
style = "bold italic bright-purple"
symbol = "⋈┈"
disabled = false
[username]
style_user = "bright-yellow bold italic"
style_root = "purple bold italic"
format = "[⭘ $user]($style) "
disabled = false
show_always = false
[directory]
home_symbol = "⌂"
truncation_length = 2
truncation_symbol = "□ "
read_only = " ◈"
use_os_path_sep = true
style = "italic blue"
format = '[$path]($style)[$read_only]($read_only_style)'
repo_root_style = 'bold blue'
repo_root_format = '[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) [△](bold bright-blue)'
[cmd_duration]
format = "[◄ $duration ](italic white)"
[jobs]
format = "[$symbol$number]($style) "
style = "white"
symbol = "[▶](blue italic)"
[localip]
ssh_only = true
format = " ◯[$localipv4](bold magenta)"
disabled = false
[time]
disabled = false
format = "[ $time]($style)"
time_format = "%R"
utc_time_offset = "local"
style = "italic dimmed white"
[battery]
format = "[ $percentage $symbol]($style)"
full_symbol = "█"
charging_symbol = "[↑](italic bold green)"
discharging_symbol = "↓"
unknown_symbol = "░"
empty_symbol = "▃"
[[battery.display]]
threshold = 20
style = "italic bold red"
[[battery.display]]
threshold = 60
style = "italic dimmed bright-purple"
[[battery.display]]
threshold = 70
style = "italic dimmed yellow"
[git_branch]
format = " [$branch(:$remote_branch)]($style)"
symbol = "[△](bold italic bright-blue)"
style = "italic bright-blue"
truncation_symbol = "⋯"
truncation_length = 11
ignore_branches = ["main", "master"]
only_attached = true
[git_metrics]
format = '([▴$added]($added_style))([▿$deleted]($deleted_style))'
added_style = 'italic dimmed green'
deleted_style = 'italic dimmed red'
ignore_submodules = true
disabled = false
[git_status]
style = "bold italic bright-blue"
format = "([⎪$ahead_behind$staged$modified$untracked$renamed$deleted$conflicted$stashed⎥]($style))"
conflicted = "[◪◦](italic bright-magenta)"
ahead = "[▴│[${count}](bold white)│](italic green)"
behind = "[▿│[${count}](bold white)│](italic red)"
diverged = "[◇ ▴┤[${ahead_count}](regular white)│▿┤[${behind_count}](regular white)│](italic bright-magenta)"
untracked = "[◌◦](italic bright-yellow)"
stashed = "[◃◈](italic white)"
modified = "[●◦](italic yellow)"
staged = "[▪┤[$count](bold white)│](italic bright-cyan)"
renamed = "[◎◦](italic bright-blue)"
deleted = "[✕](italic red)"
[deno]
format = " [deno](italic) [∫ $version](green bold)"
version_format = "${raw}"
[lua]
format = " [lua](italic) [${symbol}${version}]($style)"
version_format = "${raw}"
symbol = "⨀ "
style = "bold bright-yellow"
[nodejs]
format = " [node](italic) [◫ ($version)](bold bright-green)"
version_format = "${raw}"
detect_files = ["package-lock.json", "yarn.lock"]
detect_folders = ["node_modules"]
detect_extensions = []
[python]
format = " [py](italic) [${symbol}${version}]($style)"
symbol = "[⌉](bold bright-blue)⌊ "
version_format = "${raw}"
style = "bold bright-yellow"
[ruby]
format = " [rb](italic) [${symbol}${version}]($style)"
symbol = "◆ "
version_format = "${raw}"
style = "bold red"
[rust]
format = " [rs](italic) [$symbol$version]($style)"
symbol = "⊃ "
version_format = "${raw}"
style = "bold red"
[package]
format = " [pkg](italic dimmed) [$symbol$version]($style)"
version_format = "${raw}"
symbol = "◨ "
style = "dimmed yellow italic bold"
[swift]
format = " [sw](italic) [${symbol}${version}]($style)"
symbol = "◁ "
style = "bold bright-red"
version_format = "${raw}"
[aws]
disabled = true
format = " [aws](italic) [$symbol $profile $region]($style)"
style = "bold blue"
symbol = "▲ "
[buf]
symbol = "■ "
format = " [buf](italic) [$symbol $version $buf_version]($style)"
[c]
symbol = " "
format = " [$symbol($version(-$name))]($style)"
[conda]
symbol = "◯ "
format = " conda [$symbol$environment]($style)"
[dart]
symbol = "◁◅ "
format = " dart [$symbol($version )]($style)"
[docker_context]
symbol = "◧ "
format = " docker [$symbol$context]($style)"
[elixir]
symbol = "△ "
format = " exs [$symbol $version OTP $otp_version ]($style)"
[elm]
symbol = "◩ "
format = " elm [$symbol($version )]($style)"
[golang]
symbol = "∩ "
format = " go [$symbol($version )]($style)"
[haskell]
symbol = "❯λ "
format = " hs [$symbol($version )]($style)"
[java]
symbol = " "
format = " java [${symbol}(${version} )]($style)"
[julia]
symbol = "◎ "
format = " jl [$symbol($version )]($style)"
[memory_usage]
symbol = "▪▫▪ "
format = " mem [${ram}( ${swap})]($style)"
[nim]
symbol = "▴▲▴ "
format = " nim [$symbol($version )]($style)"
[nix_shell]
style = 'bold italic dimmed blue'
symbol = '󱄅'
format = '[$symbol nix⎪$state⎪]($style) [$name](italic dimmed white)'
impure_msg = '[⌽](bold dimmed red)'
pure_msg = '[⌾](bold dimmed green)'
unknown_msg = '[◌](bold dimmed ellow)'
[spack]
symbol = "◇ "
format = " spack [$symbol$environment]($style)"

View file

@ -0,0 +1,81 @@
{
inputs,
config,
pkgs,
...
}:
{
home.username = "youwen";
home.homeDirectory = "/Users/youwen";
# link the configuration file in current directory to the specified location in home directory
# home.file.".config/i3/wallpaper.jpg".source = ./wallpaper.jpg;
# link all files in `./scripts` to `~/.config/i3/scripts`
# home.file.".config/i3/scripts" = {
# source = ./scripts;
# recursive = true; # link recursively
# executable = true; # make all files executable
# };
# encode the file content in nix configuration file directly
# home.file.".xxx".text = ''
# xxx
# '';
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
neofetch
# archives
zip
xz
unzip
p7zip
# utils
nurl # helps fetch git data for nixpkgs
# nix related
#
# it provides the command `nom` works just like `nix`
# with more details log output
nix-output-monitor
];
programs.git.extraConfig.commit.gpgsign = "false";
programs.oh-my-posh.enableZshIntegration = true;
programs.bash.enable = true;
programs.zsh.enable = true;
programs.kitty = {
enable = true;
theme = "Tokyo Night";
font.name = "CaskaydiaCove Nerd Font";
settings = {
font_size = 13;
window_padding_width = "8 8 0";
confirm_os_window_close = -1;
shell_integration = "enabled";
enable_audio_bell = "no";
background_opacity = "0.8";
hide_window_decorations = "titlebar-only";
background_blur = 32;
};
};
# This value determines the home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new home Manager release introduces backwards
# incompatible changes.
home.stateVersion = "24.05";
#
# You can update home Manager without changing this value. See
# the home Manager release notes for a list of state version
# changes in each release.
# Let home Manager install and manage itself.
programs.home-manager.enable = true;
}

6
hm/modules/default.nix Normal file
View file

@ -0,0 +1,6 @@
{
imports = [
./common
./linux
];
}

45
hm/modules/linux/default.nix Executable file
View file

@ -0,0 +1,45 @@
{
pkgs,
lib,
config,
...
}:
{
imports = [
./var/easyeffects
./programs
./spicetify
./desktop-environment
./theming
./platform-tweaks
];
programs.fish.functions = lib.mkIf config.liminalOS.programs.enable {
# rebuild = ''doas nixos-rebuild --flake ~/.config/liminalOS\#${osConfig.networking.hostName} switch &| nom'';
# os-test = ''doas nixos-rebuild --flake ~/.config/liminalOS\#${osConfig.networking.hostName} test &| nom'';
# nixos-update = ''
# cd ~/.config/liminalOS
# nix flake update --commit-lock-file
# doas nixos-rebuild --flake ~/.config/liminalOS\#${osConfig.networking.hostName} switch &| nom
# '';
nh = {
# wrapper for nh as it doesn't work with `doas`
body = ''
if count $argv > /dev/null
if contains -- os $argv or contains -- clean $argv
doas ${pkgs.nh}/bin/nh $argv -R
else
${pkgs.nh}/bin/nh $argv
end
else
${pkgs.nh}/bin/nh
end
'';
};
spt = "${pkgs.spotify-player}/bin/spotify_player";
};
home.file = lib.mkIf config.liminalOS.programs.enable {
".config/vesktop/settings.json".source = config.lib.file.mkOutOfStoreSymlink ./var/settings.json;
};
}

View file

@ -0,0 +1,23 @@
{
osConfig,
config,
lib,
...
}:
{
imports = [
./hyprland
./waybar
./swaync.nix
];
options.liminalOS.desktop = {
enable = lib.mkOption {
type = lib.types.bool;
default = osConfig.liminalOS.desktop.enable;
description = ''
Whether to enable the default configuration for the userland portions of the liminalOS desktop environment.
'';
};
};
}

View file

@ -0,0 +1,394 @@
{
pkgs,
config,
lib,
osConfig,
...
}:
let
cfg = config.liminalOS.desktop.hyprland;
in
{
options.liminalOS.desktop.hyprland = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.desktop.enable;
description = ''
Whether to enable and rice Hyprland as well as some basic desktop utilities.
'';
};
applyGtkFix = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to set GSK_RENDERER environment variable to stop GTK apps from crashing.
'';
};
idleDaemon.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to setup and enable Hypridle with some defaults to automatically lock the screen and suspend after idling.
'';
};
screenlocker.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to set up Hyprlock for screen locking.
'';
};
};
config = lib.mkIf cfg.enable {
home.packages =
with pkgs;
[
wl-clipboard
libsForQt5.qtstyleplugin-kvantum
libsForQt5.qt5ct
papirus-icon-theme
libsForQt5.qt5ct
]
++ (lib.optionals (!osConfig.liminalOS.theming.enable) [
pkgs.bibata-cursors
]);
wayland.windowManager.hyprland = {
enable = true;
settings = {
"$mod" = "SUPER";
"$Left" = "H";
"$Right" = "L";
"$Up" = "K";
"$Down" = "J";
env =
(lib.optionals cfg.applyGtkFix [
"GSK_RENDERER,gl"
])
++ (lib.optionals (config.liminalOS.formFactor == "laptop" && !osConfig.liminalOS.theming.enable) [
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
"HYPRCURSOR_SIZE,24"
"XCURSOR_THEME,Bibata-Modern-Ice"
"XCURSOR_SIZE,24"
])
++ (lib.optionals (config.liminalOS.formFactor == "desktop" && !osConfig.liminalOS.theming.enable) [
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
"HYPRCURSOR_SIZE,26"
"XCURSOR_THEME,Bibata-Modern-Ice"
"XCURSOR_SIZE,26"
]);
bind =
[
# Window actions
"$mod, Q, killactive"
"$mod, W, togglefloating"
"$mod, V, togglesplit"
"$mod, Return, fullscreen"
# Move around
"$mod, $Left, movefocus, l"
"$mod, $Right, movefocus, r"
"$mod, $Up, movefocus, u"
"$mod, $Down, movefocus, d"
"$mod, D, workspace, previous"
"$mod, 1, workspace, 1"
"$mod+Ctrl, H, workspace, 1"
"$mod, 2, workspace, 2"
"$mod+Ctrl, J, workspace, 2"
"$mod, 3, workspace, 3"
"$mod+Ctrl, K, workspace, 3"
"$mod, 4, workspace, 4"
"$mod+Ctrl, L, workspace, 4"
"$mod, 5, workspace, 5"
"$mod+Ctrl, semicolon, workspace, 5"
"$mod, 6, workspace, 6"
"$mod+Ctrl, apostrophe, workspace, 6"
"$mod, 7, workspace, 7"
"$mod+Ctrl, U, workspace, 7"
"$mod, 8, workspace, 8"
"$mod+Ctrl, I, workspace, 8"
"$mod, 9, workspace, 9"
"$mod+Ctrl, O, workspace, 9"
"$mod, 0, workspace, 10"
"$mod+Ctrl, P, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"$mod+Shift, 1, movetoworkspace, 1"
"$mod+Ctrl+Shift, H, movetoworkspace, 1"
"$mod+Shift, 2, movetoworkspace, 2"
"$mod+Ctrl+Shift, J, movetoworkspace, 2"
"$mod+Shift, 3, movetoworkspace, 3"
"$mod+Ctrl+Shift, K, movetoworkspace, 3"
"$mod+Shift, 4, movetoworkspace, 4"
"$mod+Ctrl+Shift, L, movetoworkspace, 4"
"$mod+Shift, 5, movetoworkspace, 5"
"$mod+Ctrl+Shift, semicolon, movetoworkspace, 5"
"$mod+Shift, 6, movetoworkspace, 6"
"$mod+Ctrl+Shift, apostrophe, movetoworkspace, 6"
"$mod+Shift, 7, movetoworkspace, 7"
"$mod+Ctrl+Shift, U, movetoworkspace, 7"
"$mod+Shift, 8, movetoworkspace, 8"
"$mod+Ctrl+Shift, I, movetoworkspace, 8"
"$mod+Shift, 9, movetoworkspace, 9"
"$mod+Ctrl+Shift, O, movetoworkspace, 9"
"$mod+Shift, 0, movetoworkspace, 10"
"$mod+Ctrl+Shift, P, movetoworkspace, 10"
# Special workspace
"$mod, S, togglespecialworkspace"
"$mod+Alt, S, movetoworkspacesilent, special"
# Move windows around
"$mod+Shift, $Left, movewindow, l"
"$mod+Shift, $Right, movewindow, r"
"$mod+Shift, $Up, movewindow, u"
"$mod+Shift, $Down, movewindow, d"
"$mod+Ctrl, bracketright, movetoworkspace, r+1"
"$mod+Ctrl, bracketleft, movetoworkspace, r-1"
"$mod, bracketright, workspace, r+1"
"$mod, bracketleft, workspace, r-1"
# Utilities
"$mod, Space, exec, pkill -x rofi || rofi -show drun" # Run rofi application launcher
"$mod, G, exec, pkill -x rofi || rofi -show window" # Run rofi window switcher
''$mod, P, exec, ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -'' # Screenshot
''$mod+Shift, P, exec, ${pkgs.grim}/bin/grim - | ${pkgs.swappy}/bin/swappy -f -'' # Screenshot
"$mod, Backspace, exec, pkill -x wlogout || wlogout" # show logout menu
"$mod, Z, exec, loginctl lock-session"
# Media controls
",XF86AudioMute, exec, ${pkgs.pamixer}/bin/pamixer -t"
",XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl --player=%any,firefox play-pause"
",XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl --player=%any,firefox next"
",XF86AudioRewind, exec, ${pkgs.playerctl}/bin/playerctl --player=%any,firefox previous"
]
++ (lib.optionals config.liminalOS.programs.zen.enable [
"$mod, F, exec, zen"
])
++ (lib.optionals config.liminalOS.desktop.swaync.enable [
"$mod, N, exec, sleep 0.1 && ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw"
])
++ (lib.optionals config.liminalOS.programs.enable [
# Application Keybinds
"$mod, R, exec, ${pkgs.pavucontrol}/bin/pavucontrol -t 3" # open pavucontrol on 'outputs' tab
"$mod, T, exec, ${pkgs.kitty}/bin/kitty"
"$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar"
"$mod, M, exec, ${pkgs.thunderbird}/bin/thunderbird"
]);
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
bindel = [
",XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"
",XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl set 5%+"
",XF86AudioRaiseVolume, exec, ${pkgs.pamixer}/bin/pamixer -i 5"
",XF86AudioLowerVolume, exec, ${pkgs.pamixer}/bin/pamixer -d 5"
];
binde = [
# Resize windows
"$mod+Alt, $Right, resizeactive, 30 0"
"$mod+Alt, $Left, resizeactive, -30 0"
"$mod+Alt, $Up, resizeactive, 0 -30"
"$mod+Alt, $Down, resizeactive, 0 30"
];
windowrulev2 = import ./windowrulev2.nix;
layerrule = [
"blur,rofi"
"ignorezero,rofi"
"animation slide bottom 0.2 0.2 wind,rofi"
"blur,notifications"
"ignorezero,notifications"
"blur,swaync-notification-window"
"animation slide right 0.5 0.5,swaync-control-center"
"animation slide right 0.5 0.5,notifications"
"animation slide right 0.5 0.5,swaync-notification-window"
"ignorezero,swaync-notification-window"
"blur,swaync-control-center"
"ignorezero,swaync-control-center"
"blur,logout_dialog"
];
dwindle = {
pseudotile = "yes";
preserve_split = "yes";
};
animations = {
enabled = "yes";
bezier = [
"wind, 0.05, 0.9, 0.1, 1.05"
"winIn, 0.1, 1.1, 0.1, 1.1"
"winOut, 0.3, -0.3, 0, 1"
"liner, 1, 1, 1, 1"
];
animation = [
"windows, 1, 6, wind, slide"
"windowsIn, 1, 6, winIn, slide"
"windowsOut, 1, 5, winOut, slide"
"windowsMove, 1, 5, wind, slide"
# "border, 1, 1, liner"
# "borderangle, 1, 30, liner, loop"
"fade, 1, 10, default"
"workspaces, 1, 5, wind"
# "layers, 1, 8, default, slide"
];
};
general = {
gaps_in = "3";
gaps_out = "8";
border_size = "2";
# the dot is a hyprland name, not nix syntax, so we escape it
"col.active_border" = pkgs.lib.mkForce "rgba(ca9ee6ff) rgba(f2d5cfff) 45deg";
"col.inactive_border" = pkgs.lib.mkForce "rgba(b4befecc) rgba(6c7086cc) 45deg";
layout = "dwindle";
resize_on_border = "true";
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
cursor = {
hide_on_key_press = true;
};
decoration = {
rounding = "10";
dim_special = "0.3";
blur = {
enabled = "yes";
size = "6";
passes = "3";
new_optimizations = "on";
ignore_opacity = "on";
xray = "false";
special = true;
};
shadow = {
enabled = false;
};
};
input = {
sensitivity = if config.liminalOS.formFactor == "laptop" then "0.0" else "-0.65";
};
};
};
wayland.windowManager.hyprland.settings.input.touchpad =
lib.mkIf (config.liminalOS.formFactor == "laptop")
{
natural_scroll = true;
disable_while_typing = true;
clickfinger_behavior = true;
tap-to-click = false;
scroll_factor = 0.15;
};
services.hyprpaper.enable = true;
programs.wlogout.enable = true;
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
# theme = "gruvbox-dark";
terminal = "${pkgs.kitty}/bin/kitty";
extraConfig = {
modi = "window,drun,ssh,combi,filebrowser,recursivebrowser";
display-drun = " 󰘧 ";
combi-modi = "window,drun,ssh";
run-shell-command = "{terminal} -e {cmd}";
sidebar-mode = true;
background-color = "transparent";
sorting = "fuzzy";
};
};
programs.hyprlock = lib.mkIf cfg.screenlocker.enable {
enable = true;
settings = {
general = {
hide_cursor = true;
grace = 1;
};
background = {
monitor = "";
path = "/tmp/__hyprlock-monitor-screenshot.png";
blur_passes = 3;
blur_size = 7;
noise = 0.0117;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
};
input-field = {
monitor = "";
size = "200, 50";
outline_thickness = 3;
dots_size = 0.33;
dots_spacing = 0.15;
dots_center = false;
dots_rounding = -1;
outer_color = "rgb(151515)";
inner_color = "rgb(200, 200, 200)";
font_color = "rgb(10, 10, 10)";
fade_on_empty = true;
fade_timeout = 1000;
placeholder_text = "<i>Input Password...</i>";
hide_input = false;
rounding = -1;
check_color = "rgb(204, 136, 34)";
fail_color = "rgb(204, 34, 34)";
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
fail_timeout = 2000;
fail_transition = 300;
capslock_color = -1;
numlock_color = -1;
bothlock_color = -1;
invert_numlock = false;
swap_font_color = false;
position = "0, -20";
halign = "center";
valign = "center";
};
};
};
services.hypridle = lib.mkIf cfg.idleDaemon.enable {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || ${pkgs.grim}/bin/grim -o ${config.programs.hyprlock.settings.background.monitor} /tmp/__hyprlock-monitor-screenshot.png && ${pkgs.hyprlock}/bin/hyprlock"; # avoid starting multiple hyprlock instances.
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
};
listener = [
{
timeout = 1500;
on-timeout = "loginctl lock-session";
}
{
timeout = 330; # 5.5min
on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed
on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired.
}
{
timeout = 1800;
on-timeout = "systemctl suspend";
}
];
};
};
};
}

View file

@ -0,0 +1,86 @@
[
"opacity 0.90 0.90,class:^(librewolf)$"
"opacity 0.90 0.90,class:^(floorp)$"
"opacity 0.90 0.90,class:^(zen-alpha)$"
"opacity 0.90 0.90,class:^(zen-beta)$"
"opacity 0.90 0.90,class:^(Brave-browser)$"
"opacity 0.80 0.80,class:^(Steam)$"
"opacity 0.80 0.80,class:^(steam)$"
"opacity 0.80 0.80,class:^(steamwebhelper)$"
"opacity 0.80 0.80,class:^(Spotify)$"
"opacity 0.80 0.80,initialTitle:^(Spotify Premium)$"
"opacity 0.80 0.80,initialTitle:^(Spotify Free)$"
"opacity 0.80 0.80,class:^(code-oss)$"
"opacity 0.80 0.80,class:^(Code)$"
"opacity 0.80 0.80,class:^(code-url-handler)$"
"opacity 0.80 0.80,class:^(code-insiders-url-handler)$"
"opacity 0.80 0.80,class:^(kitty)$"
"opacity 0.80 0.80,class:^(neovide)$"
"opacity 0.80 0.80,class:^(org.kde.dolphin)$"
"opacity 0.80 0.80,class:^(thunar)$"
"opacity 0.80 0.80,class:^(org.kde.ark)$"
"opacity 0.80 0.80,class:^(nwg-look)$"
"opacity 0.80 0.80,class:^(qt5ct)$"
"opacity 0.80 0.80,class:^(qt6ct)$"
"opacity 0.80 0.80,class:^(kvantummanager)$"
"opacity 0.80 0.80,class:^(waypaper)$"
"opacity 0.80 0.80,class:^(org.pulseaudio.pavucontrol)$"
"opacity 0.80 0.80,class:^(com.github.wwmm.easyeffects)$"
"opacity 0.80 0.80,class:^(thunderbird)$"
"opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
"opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk"
"opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk"
"opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt"
"opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk"
"opacity 0.80 0.80,class:^(discord)$ # Discord-Electron"
"opacity 0.80 0.80,class:^(vesktop)$ # Vesktop-Electron"
"opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron"
"opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk"
"opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
"opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk"
"opacity 0.80 0.80,class:^(signal)$ # Signal-Gtk"
"opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk"
"opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
"opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk"
"opacity 0.80 0.80,class:^(lutris)$ # Lutris game launcher"
"opacity 0.80 0.70,class:^(pavucontrol)$"
"opacity 0.80 0.70,class:^(blueman-manager)$"
"opacity 0.80 0.70,class:^(nm-applet)$"
"opacity 0.80 0.70,class:^(nm-connection-editor)$"
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
"float,class:^(org.kde.dolphin)$,title:^(Progress Dialog Dolphin)$"
"float,class:^(org.kde.dolphin)$,title:^(Copying Dolphin)$"
"float,title:^(Picture-in-Picture)$"
"float,class:^(librewolf)$,title:^(Library)$"
"float,class:^(floorp)$,title:^(Library)$"
"float,class:^(zen-alpha)$,title:^(Library)$"
"float,title:^(Extension: (Bitwarden Password Manager))$"
"float,class:^(vlc)$"
"float,class:^(kvantummanager)$"
"float,class:^(qt5ct)$"
"float,class:^(qt6ct)$"
"float,class:^(nwg-look)$"
"float,class:^(org.kde.ark)$"
"float,class:^(org.pulseaudio.pavucontrol)$"
"float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
"float,class:^(app.drey.Warp)$ # Warp-Gtk"
"float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
"float,class:^(yad)$ # Protontricks-Gtk"
"float,class:^(eog)$ # Imageviewer-Gtk"
"float,class:^(io.github.alainm23.planify)$ # planify-Gtk"
"float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
"float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk"
"float,class:^(blueman-manager)$"
"float,class:^(nm-applet)$"
"float,class:^(nm-connection-editor)$"
"float,class:^(org.kde.polkit-kde-authentication-agent-1)$"
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.gtk)$"
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.hyprland)$"
"size 50% 50%,class:^(org.pulseaudio.pavucontrol)"
"stayfocused, class:^(pinentry-)" # fix pinentry losing focus
]

View file

@ -0,0 +1,325 @@
{ config, lib, ... }:
let
cfg = config.liminalOS.desktop.swaync;
in
{
options.liminalOS.desktop.swaync = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.desktop.enable;
description = ''
Whether to enable the swaync notification center and daemon.
'';
};
};
config = lib.mkIf cfg.enable {
services.swaync.enable = true;
services.swaync.settings = {
positionX = "right";
positionY = "top";
control-center-margin-top = 10;
control-center-margin-bottom = 10;
control-center-margin-right = 10;
control-center-margin-left = 10;
notification-icon-size = 64;
notification-body-image-height = 100;
notification-body-image-width = 200;
timeout = 10;
timeout-low = 5;
timeout-critical = 0;
fit-to-screen = false;
control-center-width = 500;
control-center-height = 800;
notification-window-width = 500;
keyboard-shortcuts = true;
image-visibility = "when-available";
transition-time = 200;
hide-on-clear = false;
hide-on-action = true;
script-fail-notify = true;
widgets = [
"title"
"mpris"
"volume"
"backlight"
"dnd"
"notifications"
];
widget-config = {
title = {
text = "Mission Control";
clear-all-button = "true";
button-text = " All Systems Go";
};
dnd = {
text = "Do Not Disturb";
};
label = {
max-lines = 1;
text = "Mission Control";
};
mpris = {
image-size = 96;
image-radius = 7;
};
volume = {
label = "󰕾";
};
backlight = {
label = "󰃟";
};
};
};
home.file.".config/swaync/style.css".text = ''
* {
font-family: ${config.stylix.fonts.monospace.name};
}
.control-center .notification-row:focus,
.control-center .notification-row:hover {
background: #${config.lib.stylix.colors.base00}
}
.notification-row {
outline: none;
margin: 10px;
padding: 0;
}
.notification {
background: transparent;
padding: 0;
margin: 0px;
opacity: 0.75;
}
.notification-content {
background: #${config.lib.stylix.colors.base00};
padding: 10px;
border-radius: 5px;
border: 2px solid #${config.lib.stylix.colors.base05};
margin: 0;
}
.notification-default-action {
margin: 0;
padding: 0;
border-radius: 5px;
}
.close-button {
background: #${config.lib.stylix.colors.base08};
color: #${config.lib.stylix.colors.base00};
text-shadow: none;
padding: 0;
border-radius: 5px;
margin-top: 5px;
margin-right: 5px;
}
.close-button:hover {
box-shadow: none;
background: #${config.lib.stylix.colors.base0D};
transition: all .15s ease-in-out;
border: none
}
.notification-action {
border: 2px solid #${config.lib.stylix.colors.base0D};
border-top: none;
border-radius: 5px;
}
.notification-default-action:hover,
.notification-action:hover {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base0B}
}
.notification-default-action {
border-radius: 5px;
margin: 0px;
}
.notification-default-action:not(:only-child) {
border-bottom-left-radius: 7px;
border-bottom-right-radius: 7px
}
.notification-action:first-child {
border-bottom-left-radius: 10px;
background: #${config.lib.stylix.colors.base00}
}
.notification-action:last-child {
border-bottom-right-radius: 10px;
background: #${config.lib.stylix.colors.base00}
}
.inline-reply {
margin-top: 8px
}
.inline-reply-entry {
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base05};
caret-color: #${config.lib.stylix.colors.base05};
border: 1px solid #${config.lib.stylix.colors.base09};
border-radius: 5px
}
.inline-reply-button {
margin-left: 4px;
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base09};
border-radius: 5px;
color: #${config.lib.stylix.colors.base05}
}
.inline-reply-button:disabled {
background: initial;
color: #${config.lib.stylix.colors.base03};
border: 1px solid transparent
}
.inline-reply-button:hover {
background: #${config.lib.stylix.colors.base00}
}
.body-image {
margin-top: 6px;
background-color: #${config.lib.stylix.colors.base05};
border-radius: 5px
}
.summary {
font-size: 16px;
font-weight: 700;
background: transparent;
color: rgba(158, 206, 106, 1);
text-shadow: none
}
.time {
font-size: 16px;
font-weight: 700;
background: transparent;
color: #${config.lib.stylix.colors.base05};
text-shadow: none;
margin-right: 18px
}
.body {
font-size: 15px;
font-weight: 400;
background: transparent;
color: #${config.lib.stylix.colors.base05};
text-shadow: none
}
.control-center {
background: #${config.lib.stylix.colors.base00};
border: 2px solid #${config.lib.stylix.colors.base0C};
border-radius: 5px;
opacity: 0.85;
}
.control-center-list {
background: transparent
}
.control-center-list-placeholder {
opacity: .5
}
.floating-notifications {
background: transparent
}
.blank-window {
background: alpha(black, 0)
}
.widget-title {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base00};
padding: 5px 10px;
margin: 10px 10px 5px 10px;
font-size: 1.5rem;
border-radius: 5px;
}
.widget-title>button {
font-size: 1rem;
color: #${config.lib.stylix.colors.base05};
text-shadow: none;
background: #${config.lib.stylix.colors.base00};
box-shadow: none;
border-radius: 5px;
}
.widget-title>button:hover {
background: #${config.lib.stylix.colors.base08};
color: #${config.lib.stylix.colors.base00};
}
.widget-dnd {
background: #${config.lib.stylix.colors.base00};
padding: 5px 10px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
font-size: large;
color: #${config.lib.stylix.colors.base0B};
}
.widget-dnd>switch {
border-radius: 5px;
/* border: 1px solid #${config.lib.stylix.colors.base0B}; */
background: #${config.lib.stylix.colors.base0B};
}
.widget-dnd>switch:checked {
background: #${config.lib.stylix.colors.base08};
border: 1px solid #${config.lib.stylix.colors.base08};
}
.widget-dnd>switch slider {
background: #${config.lib.stylix.colors.base00};
border-radius: 5px
}
.widget-dnd>switch:checked slider {
background: #${config.lib.stylix.colors.base00};
border-radius: 5px
}
.widget-label {
margin: 10px 10px 5px 10px;
}
.widget-label>label {
font-size: 1rem;
color: #${config.lib.stylix.colors.base05};
}
.widget-mpris {
color: #${config.lib.stylix.colors.base05};
padding: 5px 10px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
}
.widget-mpris > box > button {
border-radius: 5px;
}
.widget-mpris-player {
padding: 5px 10px;
margin: 10px
}
.widget-mpris-title {
font-weight: 700;
font-size: 1.25rem
}
.widget-mpris-subtitle {
font-size: 1.1rem
}
.widget-menubar>box>.menu-button-bar>button {
border: none;
background: transparent
}
.topbar-buttons>button {
border: none;
background: transparent
}
.widget-volume {
background: #${config.lib.stylix.colors.base01};
padding: 5px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
font-size: x-large;
color: #${config.lib.stylix.colors.base05};
}
.widget-volume>box>button {
background: #${config.lib.stylix.colors.base0B};
border: none
}
.per-app-volume {
background-color: #${config.lib.stylix.colors.base00};
padding: 4px 8px 8px;
margin: 0 8px 8px;
border-radius: 5px;
}
.widget-backlight {
background: #${config.lib.stylix.colors.base01};
padding: 5px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
font-size: x-large;
color: #${config.lib.stylix.colors.base05}
}
'';
};
}

View file

@ -0,0 +1,208 @@
{
pkgs,
osConfig,
config,
lib,
...
}:
let
cfg = config.liminalOS.desktop.waybar;
in
{
options.liminalOS.desktop.waybar = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.desktop.enable;
description = ''
Whether to enable Waybar and the liminalOS rice.
'';
};
};
config = {
programs.waybar = lib.mkIf cfg.enable {
enable = true;
style = ./style.css;
systemd.enable = true;
settings = {
mainBar = {
name = "bar0";
layer = "top";
position = "top";
height = 28;
"margin" = "5px 10px 0px 10px";
"spacing" = 10;
"mode" = "top";
reload_style_on_change = true;
modules-left = [
"hyprland/workspaces"
"hyprland/window"
];
modules-right = [
"tray"
"idle_inhibitor"
"backlight"
"wireplumber"
"network"
"battery"
"disk"
"memory"
"cpu"
"temperature"
"clock"
"custom/notification"
];
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "󰛊 ";
deactivated = "󰾫 ";
};
};
network = {
format = "{ifname}";
format-wifi = "{icon}{essid}";
format-ethernet = " {essid}";
format-disconnected = "󰤯 Disconnected";
format-icons = [
"󰤟 "
"󰤢 "
"󰤨 "
];
tooltip-format = " {bandwidthUpBits} | {bandwidthDownBits}";
tooltip-format-wifi = " {bandwidthUpBits} | {bandwidthDownBits} | 󱄙 {signalStrength}";
};
backlight = {
interval = 2;
format = "󰖨 {percent}%";
on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl set +4";
on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl set 4-";
};
wireplumber = {
format = "{icon} {volume}%";
format-muted = "󰝟 ";
on-click = "pamixer -t";
on-scroll-up = "${pkgs.pamixer}/bin/pamixer set 5%+";
on-scroll-down = "${pkgs.pamixer}/bin/pamixer set 5%-";
format-icons = [
""
""
""
""
""
];
};
battery = {
interval = 10;
format = "{icon} {capacity}%";
format-icons = [
"󰂎"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
tooltip = true;
tooltip-format = "{timeTo}";
};
disk = {
intervel = 30;
format = "󰋊 {percentage_used}%";
tooltip-format = "{used} used out of {total} on \"{path}\" ({percentage_used}%)";
};
memory = {
interval = 10;
format = " {used}";
tooltip-format = "{used}GiB used of {total}GiB ({percentage}%)";
};
cpu = {
interval = 10;
format = " {usage}%";
};
temperature = {
interval = 10;
};
clock = {
interval = 1;
format = "{:%H:%M:%S}";
};
"custom/notification" = lib.mkIf config.liminalOS.desktop.swaync.enable {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "<span foreground='red'><small><sup></sup></small></span>";
none = " ";
dnd-notification = "<span foreground='red'><small><sup></sup></small></span>";
dnd-none = " ";
};
return-type = "json";
exec = "${pkgs.swaynotificationcenter}/bin/swaync-client -swb";
on-click = "sleep 0.1 && ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw";
on-click-right = "sleep 0.1 && ${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw";
escape = true;
};
"hyprland/workspaces" = {
show-special = true;
persistent-workspaces = {
"*" = [
1
2
3
4
5
6
7
8
9
10
];
};
format = "{icon}";
format-icons = {
active = "";
empty = "";
default = "";
urgent = "";
special = "󰠱";
};
};
"hyprland/window" = {
icon = true;
icon-size = 20;
max-length = 50;
rewrite = {
"(.*) LibreWolf" = "$1";
"(.*) Zen Browser" = "$1";
"^$" = "👾";
};
};
};
};
};
};
}

View file

@ -0,0 +1,171 @@
{
# home.file.".config/waybar/config".source = ./config.jsonc;
programs.waybar = {
enable = true;
style = ./style.css;
systemd.enable = true;
settings = {
mainBar = {
name = "bar0";
layer = "top";
position = "top";
height = 28;
# "width" = 1920;
"margin" = "5px 10px 0px 10px";
"spacing" = 10;
"mode" = "top";
# "exclusive" = true;
# "output" = "eDP-1";
reload_style_on_change = true;
modules-left = [ "hyprland/workspaces" ];
modules-center = [ "hyprland/window" ];
modules-right = [
"tray"
"idle_inhibitor"
"backlight"
"wireplumber"
"network"
"battery"
"disk"
"memory"
"cpu"
"temperature"
"clock"
];
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "󰛊 ";
deactivated = "󰾫 ";
};
};
network = {
format = "{ifname}";
format-wifi = "{icon}{essid}";
format-ethernet = " {essid}";
format-disconnected = "󰤯 Disconnected";
format-icons = [
"󰤟 "
"󰤢 "
"󰤨 "
];
tooltip-format = " {bandwidthUpBits} | {bandwidthDownBits}";
tooltip-format-wifi = " {bandwidthUpBits} | {bandwidthDownBits} | 󱄙 {signalStrength}";
};
backlight = {
interval = 2;
format = "󰖨 {percent}%";
on-scroll-up = "brightnessctl set +4";
on-scroll-down = "brightnessctl set 4-";
};
wireplumber = {
format = "{icon} {volume}%";
format-muted = "󰝟 ";
on-click = "pamixer -t";
on-scroll-up = "pamixer set 5%+";
on-scroll-down = "pamixer set 5%-";
format-icons = [
""
""
""
""
""
];
};
battery = {
interval = 10;
format = "{icon}{capacity}%";
format-icons = [
"󰂎"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
tooltip = true;
tooltip-format = "{timeTo}";
};
disk = {
intervel = 30;
format = "󰋊 {percentage_used}%";
tooltip-format = "{used} used out of {total} on \"{path}\" ({percentage_used}%)";
};
memory = {
interval = 10;
format = " {used}";
tooltip-format = "{used}GiB used of {total}GiB ({percentage}%)";
};
cpu = {
interval = 10;
format = " {usage}%";
};
temperature = {
interval = 10;
};
clock = {
interval = 1;
format = "{:%H:%M:%S}";
};
"hyprland/workspaces" = {
show-special = true;
persistent-workspaces = {
"*" = [
1
2
3
4
5
6
7
8
9
10
];
};
format = "{icon}";
format-icons = {
active = "";
empty = "";
default = "";
urgent = "";
special = "󰠱";
};
};
"hyprland/window" = {
icon = true;
icon-size = 20;
max-length = 50;
rewrite = {
"(.*) Ablaze Floorp" = "$1";
"(.*) Zen Browser" = "$1";
"^$" = "👾";
};
};
};
};
};
}

View file

@ -0,0 +1,71 @@
window#waybar {
font-family: "CaskaydiaCove Nerd Font";
background-color: rgba(0,0,0,0);
font-size: 0.8rem;
border-radius: 0.5rem;
}
.modules-left, .modules-center {
opacity: 1;
background: linear-gradient(45deg, rgb(214, 39, 200), rgb(5, 83, 252));
border-radius: 0.5rem;
padding: 2px;
}
.modules-right {
opacity: 1;
background-color: rgba(0,0,0,0.5);
border-radius: 0.5rem;
padding: 2px 2px 2px 10px
}
/* label.module {
margin-left: -1px;
} */
#workspaces {
background-color: rgba(0,0,0,0.5);
border-radius: 0.5rem;
padding: 0 2px;
}
#workspaces button {
font-size: 0.6rem;
padding: 0 0.3rem 0 0;
}
#window {
background-color: rgba(0,0,0,0.5);
border-radius: 0.5rem;
padding: 2px 5px;
}
#clock {
font-weight: bolder;
border-radius: 0.5rem;
padding: 0 3px 0 0;
}
#battery {
color: lightgreen;
}
#memory {
color: lightpink;
}
#disk {
color: lightskyblue;
}
#cpu {
color: lightgoldenrodyellow;
}
#temperature {
color: lightslategray;
}
#network {
color: lightsteelblue;
}

View file

@ -0,0 +1,78 @@
window#waybar {
font-family: "CaskaydiaCove Nerd Font";
background-color: rgba(0,0,0,0);
font-size: 0.8rem;
border-radius: 0.5rem;
color: #cccccc;
}
.modules-left {
opacity: 1;
background: linear-gradient(45deg, rgb(214, 39, 200), rgb(5, 83, 252));
border-radius: 0.5rem;
padding: 2px;
}
.modules-center {
opacity: 0;
}
.modules-right {
opacity: 1;
background-color: rgba(0,0,0,0.5);
border-radius: 0.5rem;
padding: 2px 2px 2px 10px
}
/* label.module {
margin-left: -1px;
} */
#workspaces {
background-color: rgba(0,0,0,0.5);
border-radius: 0.5rem;
padding: 0 2px;
}
#workspaces button {
font-size: 0.6rem;
padding: 0 0.3rem 0 0;
border: #cccccc;
color: #cccccc;
}
#window {
background-color: rgba(0,0,0,0.5);
border-radius: 0.5rem;
padding: 2px 5px;
}
#clock {
font-weight: bolder;
border-radius: 0.5rem;
padding: 0 3px 0 0;
}
#battery {
color: lightgreen;
}
#memory {
color: lightpink;
}
#disk {
color: lightskyblue;
}
#cpu {
color: lightgoldenrodyellow;
}
#temperature {
color: lightslategray;
}
#network {
color: lightsteelblue;
}

View file

@ -0,0 +1,35 @@
{
inputs,
lib,
config,
osConfig,
...
}:
let
cfg = config.liminalOS;
in
{
options.liminalOS = {
formFactor = lib.mkOption {
type = lib.types.nullOr (
lib.types.enum [
"laptop"
"desktop"
]
);
default = osConfig.liminalOS.formFactor;
description = ''
Form factor of the machine. Adjusts some UI features. Inherited from system configuration liminalOS.formFactor if set, otherwise you must set it here.
'';
};
};
config = {
assertions = [
{
assertion = cfg.formFactor != null;
message = "You must set liminalOS.formFactor either in the home-manager configuration for the user or in the OS configuration for the system!";
}
];
};
}

View file

@ -0,0 +1,88 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.liminalOS.programs.bulk;
mkEnableOption' =
desc:
lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to enable ${desc}.
'';
};
in
{
options.liminalOS.programs.bulk = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.programs.enable;
description = ''
Whether to enable installation of various useful programs in the system.
'';
};
archiveTools.enable = mkEnableOption' "archive tools";
instantMessaging.enable = mkEnableOption' "instant messengers";
nixCliTools.enable = mkEnableOption' "Nix CLI helper tools and utilities";
desktopApps.enable = mkEnableOption' "desktop applications like mail and file explorer";
misc.enable = mkEnableOption' "assorted uncategorized utilities";
};
config = lib.mkIf cfg.enable {
home.packages =
lib.optionals cfg.archiveTools.enable (
with pkgs;
[
zip
xz
unzip
p7zip
]
)
++ lib.optionals cfg.nixCliTools.enable (
with pkgs;
[
nurl
nix-output-monitor
]
)
++ lib.optionals cfg.misc.enable (
with pkgs;
[
ffmpeg
pciutils # lspci
usbutils # lsusb
ani-cli
manga-tui
hledger
]
)
++ lib.optionals cfg.instantMessaging.enable (
with pkgs;
[
vesktop
signal-desktop
iamb
]
++ lib.optionals cfg.desktopApps.enable (
with pkgs;
[
thunderbird
xfce.thunar
]
++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 [
bitwarden-desktop
sbctl
]
++ lib.optionals pkgs.stdenv.targetPlatform.isAarch64 [ ]
)
);
};
}

View file

@ -0,0 +1,95 @@
{
pkgs,
inputs,
config,
lib,
...
}:
let
cfg = config.liminalOS.programs;
in
{
imports = [
./bulk-programs.nix
];
options.liminalOS.programs = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to set up many default desktop programs.
'';
};
terminal.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to set up kitty terminal.
'';
};
zen.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to install Zen Browser and set it as the default browser.
'';
};
};
config = lib.mkIf cfg.enable {
programs.kitty = lib.mkIf cfg.terminal.enable {
enable = true;
font.name = "CaskaydiaCove Nerd Font";
shellIntegration.enableFishIntegration = true;
shellIntegration.enableBashIntegration = true;
settings = {
font_size = 11;
window_padding_width = "8 8";
confirm_os_window_close = -1;
enable_audio_bell = "no";
background_opacity = pkgs.lib.mkForce "0.8";
allow_remote_control = "yes";
listen_on = "unix:/tmp/kitty";
scrollback_pager = ''nvim --noplugin -c "set signcolumn=no showtabline=0" -c "silent write! /tmp/kitty_scrollback_buffer | te cat /tmp/kitty_scrollback_buffer - "'';
cursor = pkgs.lib.mkForce "#c0caf5";
cursor_text_color = pkgs.lib.mkForce "#1a1b26";
cursor_trail = 3;
};
keybindings = {
"kitty_mod+h" = "show_scrollback";
};
};
programs.spotify-player.enable = true;
programs.neovide = {
enable = false;
settings = {
font = {
normal = [ "CaskaydiaCove Nerd Font" ];
size = if config.liminalOS.formFactor == "laptop" then 11 else 13;
};
};
};
xdg.mimeApps = lib.mkIf cfg.zen.enable {
enable = true;
defaultApplications = {
"text/html" = [ "zen.desktop" ];
"x-scheme-handler/http" = [ "zen.desktop" ];
"x-scheme-handler/https" = [ "zen.desktop" ];
"x-scheme-handler/about" = [ "zen.desktop" ];
"x-scheme-handler/unknown" = [ "zen.desktop" ];
};
};
home.packages = lib.mkIf cfg.zen.enable [
inputs.zen-browser.packages.${pkgs.system}.default
];
home.sessionVariables.DEFAULT_BROWSER = lib.mkIf cfg.zen.enable "${
inputs.zen-browser.packages.${pkgs.system}.default
}/bin/zen";
};
}

View file

@ -0,0 +1,31 @@
{
inputs,
pkgs,
config,
osConfig,
lib,
...
}:
let
spicepkgs = inputs.spicetify.legacyPackages.${pkgs.system};
in
{
imports = [
inputs.spicetify.homeManagerModules.default
];
config = lib.mkIf (config.liminalOS.programs.enable && osConfig.liminalOS.config.allowUnfree) {
programs.spicetify = {
enable = true;
# theme = spicepkgs.themes.dribbblish;
# colorScheme = "rosepine";
enabledExtensions = with spicepkgs.extensions; [
lastfm
fullAppDisplayMod
];
enabledCustomApps = with spicepkgs.apps; [
lyricsPlus
];
};
};
}

View file

@ -0,0 +1,14 @@
{ pkgs, ... }:
{
imports = [ ./stylix.nix ];
# gtk = {
# enable = true;
# cursorTheme = {
# name = "Bibata-Modern-Ice";
# size = 26;
# };
# iconTheme = {
# name = "Papirus-Dark";
# };
# };
}

View file

@ -0,0 +1,13 @@
{ osConfig, lib, ... }:
{
config.stylix.targets = lib.mkIf osConfig.liminalOS.theming.enable {
waybar.enable = false;
kitty.variant256Colors = true;
neovim.enable = false;
kde.enable = true;
gnome.enable = true;
swaync.enable = false;
hyprlock.enable = false;
hyprland.enable = false;
};
}

View file

@ -0,0 +1,35 @@
{
config,
lib,
osConfig,
...
}:
let
cfg = config.liminalOS.utils.easyeffects;
in
{
options.liminalOS.utils.easyeffects = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to enable EasyEffects.
'';
};
};
config = lib.mkIf cfg.enable {
services.easyeffects.enable = true;
home.file = lib.mkIf (osConfig.liminalOS.flakeLocation != null) {
".config/easyeffects/output" = {
source = config.lib.file.mkOutOfStoreSymlink "${osConfig.liminalOS.flakeLocation}/hm/modules/linux/var/easyeffects/output";
recursive = true;
};
".config/easyeffects/input" = {
source = config.lib.file.mkOutOfStoreSymlink "${osConfig.liminalOS.flakeLocation}/hm/modules/linux/var/easyeffects/input";
recursive = true;
};
};
};
}

View file

@ -0,0 +1,75 @@
{
"input": {
"blocklist": [],
"compressor#0": {
"attack": 20.0,
"boost-amount": 6.0,
"boost-threshold": -72.0,
"bypass": true,
"dry": -100.0,
"hpf-frequency": 10.0,
"hpf-mode": "off",
"input-gain": 0.0,
"knee": -6.0,
"lpf-frequency": 20000.0,
"lpf-mode": "off",
"makeup": 0.0,
"mode": "Downward",
"output-gain": 0.0,
"ratio": 4.0,
"release": 100.0,
"release-threshold": -100.0,
"sidechain": {
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right",
"type": "Feed-forward"
},
"stereo-split": false,
"threshold": -12.0,
"wet": 0.0
},
"limiter#0": {
"alr": false,
"alr-attack": 5.0,
"alr-knee": 0.0,
"alr-release": 50.0,
"attack": 5.0,
"bypass": true,
"dithering": "None",
"external-sidechain": false,
"gain-boost": true,
"input-gain": 0.0,
"lookahead": 5.0,
"mode": "Herm Thin",
"output-gain": 0.0,
"oversampling": "None",
"release": 5.0,
"sidechain-preamp": 0.0,
"stereo-link": 100.0,
"threshold": 0.0
},
"plugins_order": [
"limiter#0",
"compressor#0",
"reverb#0"
],
"reverb#0": {
"amount": -12.0,
"bass-cut": 300.0,
"bypass": true,
"decay-time": 1.5,
"diffusion": 0.5,
"dry": 0.0,
"hf-damp": 5000.0,
"input-gain": 0.0,
"output-gain": 0.0,
"predelay": 0.0,
"room-size": "Large",
"treble-cut": 5000.0
}
}
}

View file

@ -0,0 +1,75 @@
{
"input": {
"blocklist": [],
"compressor#0": {
"attack": 20.0,
"boost-amount": 6.0,
"boost-threshold": -72.0,
"bypass": false,
"dry": -100.0,
"hpf-frequency": 10.0,
"hpf-mode": "off",
"input-gain": 0.0,
"knee": -6.0,
"lpf-frequency": 20000.0,
"lpf-mode": "off",
"makeup": 0.0,
"mode": "Downward",
"output-gain": -2.1,
"ratio": 4.0,
"release": 100.0,
"release-threshold": -100.0,
"sidechain": {
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right",
"type": "Feed-forward"
},
"stereo-split": false,
"threshold": -12.0,
"wet": 0.0
},
"limiter#0": {
"alr": false,
"alr-attack": 5.0,
"alr-knee": 0.0,
"alr-release": 50.0,
"attack": 5.0,
"bypass": false,
"dithering": "None",
"external-sidechain": false,
"gain-boost": true,
"input-gain": 0.0,
"lookahead": 5.0,
"mode": "Herm Thin",
"output-gain": 0.0,
"oversampling": "None",
"release": 5.0,
"sidechain-preamp": 0.0,
"stereo-link": 100.0,
"threshold": 0.0
},
"plugins_order": [
"limiter#0",
"speex#0",
"compressor#0"
],
"speex#0": {
"bypass": false,
"enable-agc": true,
"enable-denoise": true,
"enable-dereverb": false,
"input-gain": 0.0,
"noise-suppression": -70,
"output-gain": 0.0,
"vad": {
"enable": true,
"probability-continue": 90,
"probability-start": 95
}
}
}
}

View file

@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -3.68,
"left": {
"band0": {
"frequency": 105.0,
"gain": 0.6000000238418579,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 27.100000381469727,
"gain": -0.30000001192092896,
"mode": "APO (DR)",
"mute": false,
"q": 2.7300000190734863,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 79.0,
"gain": 1.7999999523162842,
"mode": "APO (DR)",
"mute": false,
"q": 1.2300000190734863,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 474.8999938964844,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.5400000214576721,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1164.199951171875,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 3.119999885559082,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2344.60009765625,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 3.0899999141693115,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 5148.0,
"gain": 3.9000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 1.6100000143051147,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 6457.60009765625,
"gain": -5.0,
"mode": "APO (DR)",
"mute": false,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 9619.900390625,
"gain": 3.799999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 2.309999942779541,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -2.299999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 0.6000000238418579,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 27.100000381469727,
"gain": -0.30000001192092896,
"mode": "APO (DR)",
"mute": false,
"q": 2.7300000190734863,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 79.0,
"gain": 1.7999999523162842,
"mode": "APO (DR)",
"mute": false,
"q": 1.2300000190734863,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 474.8999938964844,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.5400000214576721,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1164.199951171875,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 3.119999885559082,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2344.60009765625,
"gain": 2.0,
"mode": "APO (DR)",
"mute": false,
"q": 3.0899999141693115,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 5148.0,
"gain": 3.9000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 1.6100000143051147,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 6457.60009765625,
"gain": -5.0,
"mode": "APO (DR)",
"mute": false,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 9619.900390625,
"gain": 3.799999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 2.309999942779541,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -2.299999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View file

@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -3.34,
"left": {
"band0": {
"frequency": 105.0,
"gain": 0.699999988079071,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 26.5,
"gain": -0.4000000059604645,
"mode": "APO (DR)",
"mute": false,
"q": 2.380000114440918,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 79.19999694824219,
"gain": 1.600000023841858,
"mode": "APO (DR)",
"mute": false,
"q": 1.2999999523162842,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 468.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.5400000214576721,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1152.699951171875,
"gain": 1.899999976158142,
"mode": "APO (DR)",
"mute": false,
"q": 2.890000104904175,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2310.800048828125,
"gain": 1.7999999523162842,
"mode": "APO (DR)",
"mute": false,
"q": 2.569999933242798,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 5148.7001953125,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.4700000286102295,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 6472.39990234375,
"gain": -4.599999904632568,
"mode": "APO (DR)",
"mute": false,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 9526.5,
"gain": 3.700000047683716,
"mode": "APO (DR)",
"mute": false,
"q": 2.25,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -2.299999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 0.699999988079071,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 26.5,
"gain": -0.4000000059604645,
"mode": "APO (DR)",
"mute": false,
"q": 2.380000114440918,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 79.19999694824219,
"gain": 1.600000023841858,
"mode": "APO (DR)",
"mute": false,
"q": 1.2999999523162842,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 468.0,
"gain": -2.5,
"mode": "APO (DR)",
"mute": false,
"q": 0.5400000214576721,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1152.699951171875,
"gain": 1.899999976158142,
"mode": "APO (DR)",
"mute": false,
"q": 2.890000104904175,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2310.800048828125,
"gain": 1.7999999523162842,
"mode": "APO (DR)",
"mute": false,
"q": 2.569999933242798,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 5148.7001953125,
"gain": 3.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.4700000286102295,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 6472.39990234375,
"gain": -4.599999904632568,
"mode": "APO (DR)",
"mute": false,
"q": 6.0,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 9526.5,
"gain": 3.700000047683716,
"mode": "APO (DR)",
"mute": false,
"q": 2.25,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -2.299999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View file

@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -8.61,
"left": {
"band0": {
"frequency": 105.0,
"gain": -0.6000000238418579,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 50.0,
"gain": 3.9000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 2.0399999618530273,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 135.6999969482422,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.149999976158142,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 361.3999938964844,
"gain": 3.0999999046325684,
"mode": "APO (DR)",
"mute": false,
"q": 1.159999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1135.300048828125,
"gain": -4.599999904632568,
"mode": "APO (DR)",
"mute": false,
"q": 1.2200000286102295,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2703.699951171875,
"gain": -3.799999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 2.799999952316284,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3766.800048828125,
"gain": 9.399999618530273,
"mode": "APO (DR)",
"mute": false,
"q": 1.8300000429153442,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5260.39990234375,
"gain": 5.0,
"mode": "APO (DR)",
"mute": false,
"q": 3.609999895095825,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 8775.2998046875,
"gain": -7.400000095367432,
"mode": "APO (DR)",
"mute": false,
"q": 1.75,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -2.299999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 3.9,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": -0.6000000238418579,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 50.0,
"gain": 3.9000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 2.0399999618530273,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 135.6999969482422,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.149999976158142,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 361.3999938964844,
"gain": 3.0999999046325684,
"mode": "APO (DR)",
"mute": false,
"q": 1.159999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1135.300048828125,
"gain": -4.599999904632568,
"mode": "APO (DR)",
"mute": false,
"q": 1.2200000286102295,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2703.699951171875,
"gain": -3.799999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 2.799999952316284,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3766.800048828125,
"gain": 9.399999618530273,
"mode": "APO (DR)",
"mute": false,
"q": 1.8300000429153442,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5260.39990234375,
"gain": 5.0,
"mode": "APO (DR)",
"mute": false,
"q": 3.609999895095825,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 8775.2998046875,
"gain": -7.400000095367432,
"mode": "APO (DR)",
"mute": false,
"q": 1.75,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -2.299999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View file

@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": -4.74,
"left": {
"band0": {
"frequency": 105.0,
"gain": 3.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 53.5,
"gain": -6.800000190734863,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 141.89999389648438,
"gain": -2.4000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 2.7699999809265137,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 199.89999389648438,
"gain": 6.0,
"mode": "APO (DR)",
"mute": false,
"q": 2.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 943.5,
"gain": -1.399999976158142,
"mode": "APO (DR)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2352.89990234375,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.440000057220459,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3523.5,
"gain": 4.800000190734863,
"mode": "APO (DR)",
"mute": false,
"q": 3.859999895095825,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5082.7001953125,
"gain": -3.5,
"mode": "APO (DR)",
"mute": false,
"q": 4.53000020980835,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 6828.10009765625,
"gain": -3.9000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 3.2799999713897705,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -4.599999904632568,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 3.9,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": 3.0,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 53.5,
"gain": -6.800000190734863,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 141.89999389648438,
"gain": -2.4000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 2.7699999809265137,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 199.89999389648438,
"gain": 6.0,
"mode": "APO (DR)",
"mute": false,
"q": 2.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 943.5,
"gain": -1.399999976158142,
"mode": "APO (DR)",
"mute": false,
"q": 3.5,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2352.89990234375,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 3.440000057220459,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3523.5,
"gain": 4.800000190734863,
"mode": "APO (DR)",
"mute": false,
"q": 3.859999895095825,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5082.7001953125,
"gain": -3.5,
"mode": "APO (DR)",
"mute": false,
"q": 4.53000020980835,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 6828.10009765625,
"gain": -3.9000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 3.2799999713897705,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -4.599999904632568,
"mode": "APO (DR)",
"mute": false,
"q": 0.6666666865348816,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View file

@ -0,0 +1,243 @@
{
"output": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": true,
"input-gain": -8.61,
"left": {
"band0": {
"frequency": 105.0,
"gain": -0.6000000238418579,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 50.0,
"gain": 3.9000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 2.0399999618530273,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 135.6999969482422,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.149999976158142,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 361.3999938964844,
"gain": 3.0999999046325684,
"mode": "APO (DR)",
"mute": false,
"q": 1.159999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1135.300048828125,
"gain": -4.599999904632568,
"mode": "APO (DR)",
"mute": false,
"q": 1.2200000286102295,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2703.699951171875,
"gain": -3.799999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 2.799999952316284,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3766.800048828125,
"gain": 9.399999618530273,
"mode": "APO (DR)",
"mute": false,
"q": 1.8300000429153442,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5260.39990234375,
"gain": 5.0,
"mode": "APO (DR)",
"mute": false,
"q": 3.609999895095825,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 8775.2998046875,
"gain": -7.400000095367432,
"mode": "APO (DR)",
"mute": false,
"q": 1.75,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -2.299999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 10,
"output-gain": 3.9,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 105.0,
"gain": -0.6000000238418579,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Lo-shelf",
"width": 4.0
},
"band1": {
"frequency": 50.0,
"gain": 3.9000000953674316,
"mode": "APO (DR)",
"mute": false,
"q": 2.0399999618530273,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 135.6999969482422,
"gain": -1.5,
"mode": "APO (DR)",
"mute": false,
"q": 1.149999976158142,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 361.3999938964844,
"gain": 3.0999999046325684,
"mode": "APO (DR)",
"mute": false,
"q": 1.159999966621399,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 1135.300048828125,
"gain": -4.599999904632568,
"mode": "APO (DR)",
"mute": false,
"q": 1.2200000286102295,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 2703.699951171875,
"gain": -3.799999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 2.799999952316284,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 3766.800048828125,
"gain": 9.399999618530273,
"mode": "APO (DR)",
"mute": false,
"q": 1.8300000429153442,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 5260.39990234375,
"gain": 5.0,
"mode": "APO (DR)",
"mute": false,
"q": 3.609999895095825,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 8775.2998046875,
"gain": -7.400000095367432,
"mode": "APO (DR)",
"mute": false,
"q": 1.75,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 10000.0,
"gain": -2.299999952316284,
"mode": "APO (DR)",
"mute": false,
"q": 0.699999988079071,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"plugins_order": [
"equalizer#0"
]
}
}

View file

@ -0,0 +1,611 @@
{
"autoUpdate": true,
"autoUpdateNotification": true,
"useQuickCss": true,
"themeLinks": [],
"enabledThemes": ["stylix.theme.css"],
"enableReactDevtools": false,
"frameless": false,
"transparent": false,
"winCtrlQ": false,
"disableMinSize": false,
"winNativeTitleBar": false,
"plugins": {
"ChatInputButtonAPI": {
"enabled": false
},
"CommandsAPI": {
"enabled": true
},
"MemberListDecoratorsAPI": {
"enabled": true
},
"MessageAccessoriesAPI": {
"enabled": true
},
"MessageDecorationsAPI": {
"enabled": true
},
"MessageEventsAPI": {
"enabled": true
},
"MessagePopoverAPI": {
"enabled": false
},
"MessageUpdaterAPI": {
"enabled": false
},
"ServerListAPI": {
"enabled": true
},
"UserSettingsAPI": {
"enabled": true
},
"AlwaysAnimate": {
"enabled": false
},
"AlwaysTrust": {
"enabled": true,
"domain": true,
"file": true
},
"AnonymiseFileNames": {
"enabled": true,
"anonymiseByDefault": true,
"method": 0,
"randomisedLength": 7
},
"AppleMusicRichPresence": {
"enabled": false
},
"WebRichPresence (arRPC)": {
"enabled": false
},
"AutomodContext": {
"enabled": false
},
"BANger": {
"enabled": false
},
"BetterFolders": {
"enabled": true,
"sidebar": true,
"showFolderIcon": 1,
"keepIcons": false,
"closeAllHomeButton": false,
"closeAllFolders": false,
"forceOpen": false,
"sidebarAnim": true
},
"BetterGifAltText": {
"enabled": false
},
"BetterGifPicker": {
"enabled": false
},
"BetterNotesBox": {
"enabled": false
},
"BetterRoleContext": {
"enabled": false
},
"BetterRoleDot": {
"enabled": true,
"bothStyles": false,
"copyRoleColorInProfilePopout": false
},
"BetterSessions": {
"enabled": true,
"backgroundCheck": false
},
"BetterSettings": {
"enabled": false,
"disableFade": true,
"eagerLoad": true
},
"BetterUploadButton": {
"enabled": false
},
"BiggerStreamPreview": {
"enabled": false
},
"BlurNSFW": {
"enabled": false
},
"CallTimer": {
"enabled": true
},
"ClearURLs": {
"enabled": true
},
"ClientTheme": {
"enabled": false
},
"ColorSighted": {
"enabled": false
},
"ConsoleJanitor": {
"enabled": false
},
"ConsoleShortcuts": {
"enabled": false
},
"CopyEmojiMarkdown": {
"enabled": false
},
"CopyUserURLs": {
"enabled": true
},
"CrashHandler": {
"enabled": true
},
"CtrlEnterSend": {
"enabled": false
},
"CustomRPC": {
"enabled": false
},
"CustomIdle": {
"enabled": false
},
"Dearrow": {
"enabled": false
},
"Decor": {
"enabled": false
},
"DisableCallIdle": {
"enabled": false
},
"DontRoundMyTimestamps": {
"enabled": false
},
"EmoteCloner": {
"enabled": false
},
"Experiments": {
"enabled": false
},
"F8Break": {
"enabled": false
},
"FakeNitro": {
"enabled": false
},
"FakeProfileThemes": {
"enabled": false
},
"FavoriteEmojiFirst": {
"enabled": false
},
"FavoriteGifSearch": {
"enabled": false
},
"FixCodeblockGap": {
"enabled": false
},
"FixSpotifyEmbeds": {
"enabled": false
},
"FixYoutubeEmbeds": {
"enabled": false
},
"ForceOwnerCrown": {
"enabled": false
},
"FriendInvites": {
"enabled": false
},
"FriendsSince": {
"enabled": false
},
"GameActivityToggle": {
"enabled": false
},
"GifPaste": {
"enabled": false
},
"GreetStickerPicker": {
"enabled": false
},
"HideAttachments": {
"enabled": false
},
"iLoveSpam": {
"enabled": false
},
"IgnoreActivities": {
"enabled": false
},
"ImageLink": {
"enabled": false
},
"ImageZoom": {
"enabled": false
},
"ImplicitRelationships": {
"enabled": false
},
"InvisibleChat": {
"enabled": false
},
"KeepCurrentChannel": {
"enabled": false
},
"LastFMRichPresence": {
"enabled": false
},
"LoadingQuotes": {
"enabled": false
},
"MaskedLinkPaste": {
"enabled": false
},
"MemberCount": {
"enabled": false
},
"MessageClickActions": {
"enabled": false
},
"MessageLatency": {
"enabled": false
},
"MessageLinkEmbeds": {
"enabled": false
},
"MessageLogger": {
"enabled": false
},
"MessageTags": {
"enabled": false
},
"MoreCommands": {
"enabled": false
},
"MoreKaomoji": {
"enabled": false
},
"MoreUserTags": {
"enabled": false
},
"Moyai": {
"enabled": false
},
"MutualGroupDMs": {
"enabled": false
},
"NewGuildSettings": {
"enabled": false
},
"NoBlockedMessages": {
"enabled": false
},
"NoDefaultHangStatus": {
"enabled": false
},
"NoDevtoolsWarning": {
"enabled": false
},
"NoF1": {
"enabled": false
},
"NoMosaic": {
"enabled": false
},
"NoOnboardingDelay": {
"enabled": false
},
"NoPendingCount": {
"enabled": false
},
"NoProfileThemes": {
"enabled": false
},
"NoReplyMention": {
"enabled": false
},
"NoScreensharePreview": {
"enabled": false
},
"NoServerEmojis": {
"enabled": false
},
"NoTypingAnimation": {
"enabled": false
},
"NoUnblockToJump": {
"enabled": false
},
"NormalizeMessageLinks": {
"enabled": false
},
"NotificationVolume": {
"enabled": false
},
"NSFWGateBypass": {
"enabled": false
},
"OnePingPerDM": {
"enabled": false
},
"oneko": {
"enabled": false
},
"OpenInApp": {
"enabled": false
},
"OverrideForumDefaults": {
"enabled": false
},
"PartyMode": {
"enabled": false
},
"PauseInvitesForever": {
"enabled": false
},
"PermissionFreeWill": {
"enabled": false
},
"PermissionsViewer": {
"enabled": false
},
"petpet": {
"enabled": false
},
"PictureInPicture": {
"enabled": false
},
"PinDMs": {
"enabled": false
},
"PlainFolderIcon": {
"enabled": false
},
"PlatformIndicators": {
"enabled": true
},
"PreviewMessage": {
"enabled": false
},
"QuickMention": {
"enabled": false
},
"QuickReply": {
"enabled": false
},
"ReactErrorDecoder": {
"enabled": false
},
"ReadAllNotificationsButton": {
"enabled": true
},
"RelationshipNotifier": {
"enabled": false
},
"ReplaceGoogleSearch": {
"enabled": false
},
"ReplyTimestamp": {
"enabled": false
},
"RevealAllSpoilers": {
"enabled": false
},
"ReverseImageSearch": {
"enabled": false
},
"ReviewDB": {
"enabled": false
},
"RoleColorEverywhere": {
"enabled": false
},
"SecretRingToneEnabler": {
"enabled": false
},
"Summaries": {
"enabled": false
},
"SendTimestamps": {
"enabled": false
},
"ServerInfo": {
"enabled": false
},
"ServerListIndicators": {
"enabled": false
},
"ShikiCodeblocks": {
"enabled": false
},
"ShowAllMessageButtons": {
"enabled": false
},
"ShowConnections": {
"enabled": false
},
"ShowHiddenChannels": {
"enabled": true,
"showMode": 0,
"hideUnreads": true
},
"ShowHiddenThings": {
"enabled": true,
"showTimeouts": true,
"showInvitesPaused": true,
"showModView": true,
"disableDiscoveryFilters": true,
"disableDisallowedDiscoveryFilters": true
},
"ShowMeYourName": {
"enabled": false
},
"ShowTimeoutDuration": {
"enabled": false
},
"SilentMessageToggle": {
"enabled": false
},
"SilentTyping": {
"enabled": false
},
"SortFriendRequests": {
"enabled": false
},
"SpotifyControls": {
"enabled": true,
"hoverControls": false
},
"SpotifyCrack": {
"enabled": false
},
"SpotifyShareCommands": {
"enabled": false
},
"StartupTimings": {
"enabled": false
},
"StreamerModeOnStream": {
"enabled": false
},
"SuperReactionTweaks": {
"enabled": false
},
"TextReplace": {
"enabled": false
},
"ThemeAttributes": {
"enabled": false
},
"TimeBarAllActivities": {
"enabled": false
},
"Translate": {
"enabled": false
},
"TypingIndicator": {
"enabled": false
},
"TypingTweaks": {
"enabled": false
},
"Unindent": {
"enabled": false
},
"UnlockedAvatarZoom": {
"enabled": false
},
"UnsuppressEmbeds": {
"enabled": false
},
"UserVoiceShow": {
"enabled": false
},
"USRBG": {
"enabled": false
},
"ValidReply": {
"enabled": false
},
"ValidUser": {
"enabled": false
},
"VoiceChatDoubleClick": {
"enabled": false
},
"VcNarrator": {
"enabled": false
},
"VencordToolbox": {
"enabled": false
},
"ViewIcons": {
"enabled": false
},
"ViewRaw": {
"enabled": false
},
"VoiceDownload": {
"enabled": false
},
"VoiceMessages": {
"enabled": false
},
"WebKeybinds": {
"enabled": true
},
"WebScreenShareFixes": {
"enabled": true
},
"WhoReacted": {
"enabled": false
},
"XSOverlay": {
"enabled": false
},
"NoTrack": {
"enabled": true,
"disableAnalytics": true
},
"WebContextMenus": {
"enabled": true,
"addBack": true
},
"Settings": {
"enabled": true,
"settingsLocation": "aboveNitro"
},
"SupportHelper": {
"enabled": true
},
"YoutubeAdblock": {
"enabled": true
},
"AlwaysExpandRoles": {
"enabled": false
},
"FullSearchContext": {
"enabled": false
},
"UserMessagesPronouns": {
"enabled": false
},
"DynamicImageModalAPI": {
"enabled": false
},
"AccountPanelServerProfile": {
"enabled": false
},
"CopyFileContents": {
"enabled": false
},
"FixImagesQuality": {
"enabled": false
},
"MentionAvatars": {
"enabled": false
},
"NoMaskedUrlPaste": {
"enabled": false
},
"StickerPaste": {
"enabled": false
},
"VolumeBooster": {
"enabled": false
}
},
"notifications": {
"timeout": 5000,
"position": "bottom-right",
"useNative": "not-focused",
"logLimit": 50
},
"cloud": {
"authenticated": false,
"url": "https://api.vencord.dev/",
"settingsSync": false,
"settingsSyncVersion": 1731210778467
}
}

View file

@ -1,39 +0,0 @@
{
inputs,
...
}:
{
imports =
[
./configuration.nix
../../modules/linux
../../overlays
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.extraSpecialArgs = {
inherit inputs;
};
home-manager.users.youwen = {
imports =
[
../../users/youwen/linux/laptop
../../users/youwen/linux/packages/x86_64
../../users/youwen/linux/programs
(import ../../users/youwen/common/fastfetch { })
../../users/youwen/common
../../users/youwen/linux/spicetify
./home-manager-extras
]
++ (with inputs; [
nix-index-database.hmModules.nix-index
]);
};
}
]
++ (with inputs; [
lanzaboote.nixosModules.lanzaboote
home-manager.nixosModules.home-manager
]);
}

View file

@ -20,6 +20,7 @@ in
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
wireplumber.enable = true;
};
};
}

View file

@ -9,7 +9,13 @@ let
in
{
options.liminalOS.desktop = {
enable = lib.mkEnableOption "liminalOS desktop environment with Hyprland and other utilities";
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.enable;
description = ''
Whether to enable the liminalOS desktop environment.
'';
};
hyprland.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;

View file

@ -27,6 +27,7 @@ in
};
config = lib.mkIf cfg.enable {
xdg.portal.enable = true;
services.flatpak = {
enable = true;

View file

@ -55,9 +55,21 @@ in
default = pkgs.neovim;
description = "Default text editor that will be installed and set as $EDITOR. Set to null to disable setting and installing default text editor.";
};
formFactor = lib.mkOption {
type = lib.types.nullOr (
lib.types.enum [
"laptop"
"desktop"
]
);
default = null;
description = ''
Form factor of the machine. Adjusts some UI settings.
'';
};
};
config = {
config = lib.mkIf cfg.enable {
services.printing.enable = mkIf cfg.system.printing.enable true;
services.avahi = mkIf cfg.system.printing.enable {
@ -113,5 +125,14 @@ in
LC_TIME = "en_US.UTF-8";
};
};
assertions = [
{
assertion = cfg.formFactor != null;
message = ''
You must set `liminalOS.formFactor` to either "laptop" or "desktop"!
'';
}
];
};
}

View file

@ -19,7 +19,13 @@ let
in
{
options.liminalOS.system.networking = {
enable = lib.mkEnableOption "networking";
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.enable;
description = ''
Whether to enable networking features.
'';
};
firewallPresets = {
grimDawn = lib.mkEnableOption "firewall ports for Grim Dawn";
vite = lib.mkEnableOption "firewall ports for Vite";

View file

@ -10,7 +10,13 @@ let
in
{
options.liminalOS.theming = {
enable = lib.mkEnableOption "theming";
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.enable;
description = ''
Whether to uniformly theme the entire system using Stylix.
'';
};
plymouth.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;

View file

@ -2,10 +2,8 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
config,
inputs,
pkgs,
lib,
...
}:
{
@ -20,20 +18,15 @@
flakeLocation = "/home/youwen/.config/liminalOS";
config.allowUnfree = true;
defaultEditor = inputs.viminal.packages.${pkgs.system}.default;
formFactor = "desktop";
system = {
audio.prod.enable = true;
networking = {
enable = true;
firewallPresets.vite = true;
cloudflareNameservers.enable = true;
};
graphics = {
enable = true;
nvidia.enable = true;
};
graphics.nvidia.enable = true;
};
theming.enable = true;
desktop.enable = true;
extras.gaming = {
enable = true;
roblox.enable = true;
@ -42,7 +35,6 @@
gamemodeUsers = [ "youwen" ];
};
};
programs.flatpak.enable = true;
};
time.timeZone = "America/Los_Angeles";

View file

@ -0,0 +1,21 @@
{
inputs,
...
}:
{
imports =
[
./configuration.nix
../../../modules/linux
../../../hm
../../../overlays
{
home-manager.users.youwen = {
imports = [ ./home.nix ];
};
}
]
++ (with inputs; [
lanzaboote.nixosModules.lanzaboote
]);
}

View file

@ -1,10 +1,13 @@
{ lib, ... }:
{
lib,
...
}:
{
imports = [
../../../hm/modules
../../users/youwen
];
home.stateVersion = "24.05";
wayland.windowManager.hyprland.settings.monitor = [
# "DP-1,2560x1440@165,1920x0,auto"
"DP-1,2560x1440@144,1920x0,auto"
"HDMI-A-1,1920x1080@60,0x0,1"
];

View file

@ -0,0 +1,23 @@
{
imports = [
../../../hm/modules
];
home = {
username = "youwen";
homeDirectory = "/home/youwen";
};
liminalOS = {
utils.easyeffects.enable = true;
};
programs.git = {
userName = "Youwen Wu";
userEmail = "youwenw@gmail.com";
signing = {
signByDefault = true;
key = "8F5E6C1AF90976CA7102917A865658ED1FE61EC3";
};
};
}