diff options
Diffstat (limited to 'home/ebisu/core')
33 files changed, 2162 insertions, 0 deletions
diff --git a/home/ebisu/core/communication/catgirl.nix b/home/ebisu/core/communication/catgirl.nix new file mode 100644 index 0000000..c7f4790 --- /dev/null +++ b/home/ebisu/core/communication/catgirl.nix @@ -0,0 +1,22 @@ +{ + pkgs, + secrets, + config, + ... +}: +{ + home.packages = [ pkgs.catgirl ]; + + sops.secrets = + let + catgirlSecrets = secrets.catgirl; + in + builtins.listToAttrs ( + map (i: { + name = "catgirl/${catgirlSecrets.${toString i}}"; + value = { + path = "${config.xdg.configHome}/catgirl/${catgirlSecrets.${toString i}}"; + }; + }) (pkgs.lib.range 0 3) + ); +} diff --git a/home/ebisu/core/communication/default.nix b/home/ebisu/core/communication/default.nix new file mode 100644 index 0000000..a6d40b1 --- /dev/null +++ b/home/ebisu/core/communication/default.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + imports = [ + ./discord + ./irc.nix + ]; + + home.packages = with pkgs; [ + revolt-desktop + newsboat + pidgin + ]; +} diff --git a/home/ebisu/core/communication/discord/default.nix b/home/ebisu/core/communication/discord/default.nix new file mode 100644 index 0000000..a978822 --- /dev/null +++ b/home/ebisu/core/communication/discord/default.nix @@ -0,0 +1,4 @@ +{ + imports = [ ./vesktop.nix ]; + # home.packages = with pkgs; [ pkgs.discord-canary ]; +} diff --git a/home/ebisu/core/communication/discord/vesktop.nix b/home/ebisu/core/communication/discord/vesktop.nix new file mode 100644 index 0000000..50d788f --- /dev/null +++ b/home/ebisu/core/communication/discord/vesktop.nix @@ -0,0 +1,649 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ vesktop ]; + services.arrpc.enable = false; + + xdg.configFile = { + "vesktop/settings.json".text = '' + { + "discordBranch": "canary", + "arRPC": "on", + "splashColor": "rgba(255, 255, 255, 0.6)", + "splashBackground": "rgba(21, 14, 13, 0.52)", + "enableMenu": false, + "splashTheming": true, + "staticTitle": false, + "disableMinSize": true, + "minimizeToTray": false, + "tray": false, + "appBadge": false + } + ''; + + "vesktop/settings/quickCss.css".text = '' + /** + * @name Dark Matter + * @author Tropical#8908, Hammock#3110 + * @version 3.0.0 + * @description A cold, dark & frosty theme. + * @source https://github.com/DiscordStyles/DarkMatter/ + */ + + @import url('https://DiscordStyles.github.io/DarkMatter/src/base.css'); + + /* Variables */ + :root { + --avatar-size: 32px; + --background-image: url('https://images6.alphacoders.com/109/1093313.jpg'); + --home-image: url('https://shinobu.fuwn.workers.dev/shinobu'); + --background-solid: #150e0d85; + --background-solid-dark: #0f0a0985; + --background-solid-darker: #0b070685; + --accent: 216, 161, 110; + --accent-alt: 196, 141, 90; + } + ''; + + "vesktop/settings/settings.json".text = '' + { + "notifyAboutUpdates": true, + "autoUpdate": true, + "autoUpdateNotification": true, + "useQuickCss": true, + "themeLinks": [], + "enabledThemes": [], + "enableReactDevtools": true, + "frameless": true, + "transparent": false, + "winCtrlQ": false, + "macosTranslucency": false, + "disableMinSize": false, + "winNativeTitleBar": false, + "plugins": { + "BadgeAPI": { + "enabled": true + }, + "CommandsAPI": { + "enabled": true + }, + "ContextMenuAPI": { + "enabled": true + }, + "MemberListDecoratorsAPI": { + "enabled": true + }, + "MessageAccessoriesAPI": { + "enabled": true + }, + "MessageDecorationsAPI": { + "enabled": true + }, + "MessageEventsAPI": { + "enabled": true + }, + "MessagePopoverAPI": { + "enabled": true + }, + "NoticesAPI": { + "enabled": true + }, + "ServerListAPI": { + "enabled": true + }, + "NoTrack": { + "enabled": true + }, + "Settings": { + "enabled": true, + "settingsLocation": "aboveActivity" + }, + "SupportHelper": { + "enabled": true + }, + "AlwaysAnimate": { + "enabled": true + }, + "AlwaysTrust": { + "enabled": true + }, + "AnonymiseFileNames": { + "enabled": true, + "method": 0, + "randomisedLength": 7, + "consistent": "image" + }, + "WebRichPresence (arRPC)": { + "enabled": true + }, + "BANger": { + "enabled": false + }, + "BetterFolders": { + "enabled": false, + "sidebar": true, + "showFolderIcon": 1, + "closeAllHomeButton": false, + "keepIcons": false, + "sidebarAnim": true, + "closeOthers": false, + "closeAllFolders": false, + "forceOpen": false + }, + "BetterGifAltText": { + "enabled": true + }, + "BetterNotesBox": { + "enabled": false + }, + "BetterRoleDot": { + "enabled": false + }, + "BetterUploadButton": { + "enabled": true + }, + "BiggerStreamPreview": { + "enabled": true + }, + "BlurNSFW": { + "enabled": false + }, + "CallTimer": { + "enabled": true, + "format": "human" + }, + "ClearURLs": { + "enabled": true + }, + "ColorSighted": { + "enabled": true + }, + "ConsoleShortcuts": { + "enabled": false + }, + "CopyUserURLs": { + "enabled": true + }, + "CrashHandler": { + "enabled": true, + "attemptToPreventCrashes": true, + "attemptToNavigateToHome": true + }, + "CustomRPC": { + "enabled": false + }, + "Dearrow": { + "enabled": true + }, + "EmoteCloner": { + "enabled": true + }, + "Experiments": { + "enabled": true, + "enableIsStaff": false + }, + "F8Break": { + "enabled": false + }, + "FakeNitro": { + "enabled": false, + "enableEmojiBypass": true, + "emojiSize": 48, + "transformEmojis": true, + "enableStickerBypass": true, + "stickerSize": 160, + "transformStickers": true, + "transformCompoundSentence": false, + "enableStreamQualityBypass": true + }, + "FakeProfileThemes": { + "enabled": false + }, + "FavoriteEmojiFirst": { + "enabled": true + }, + "FavoriteGifSearch": { + "enabled": true + }, + "FixSpotifyEmbeds": { + "enabled": true, + "volume": 5 + }, + "ForceOwnerCrown": { + "enabled": false + }, + "FriendInvites": { + "enabled": false + }, + "GameActivityToggle": { + "enabled": true + }, + "GifPaste": { + "enabled": false + }, + "GreetStickerPicker": { + "enabled": true + }, + "HideAttachments": { + "enabled": false + }, + "iLoveSpam": { + "enabled": false + }, + "IgnoreActivities": { + "enabled": false + }, + "ImageZoom": { + "enabled": true, + "saveZoomValues": true, + "invertScroll": true, + "nearestNeighbour": false, + "square": false, + "zoom": 2, + "size": 100, + "zoomSpeed": 0.5 + }, + "InvisibleChat": { + "enabled": true, + "savedPasswords": "password, Password" + }, + "KeepCurrentChannel": { + "enabled": false + }, + "LastFMRichPresence": { + "enabled": false + }, + "LoadingQuotes": { + "enabled": true, + "replaceEvents": true + }, + "MemberCount": { + "enabled": true + }, + "MessageClickActions": { + "enabled": false + }, + "MessageLinkEmbeds": { + "enabled": true, + "automodEmbeds": "never", + "listMode": "blacklist", + "idList": "" + }, + "MessageLogger": { + "enabled": true, + "deleteStyle": "text", + "ignoreBots": false, + "ignoreSelf": false, + "ignoreUsers": "", + "ignoreChannels": "", + "ignoreGuilds": "" + }, + "MessageTags": { + "enabled": false + }, + "MoreCommands": { + "enabled": true + }, + "MoreKaomoji": { + "enabled": true + }, + "MoreUserTags": { + "enabled": false + }, + "Moyai": { + "enabled": false, + "volume": 0.5, + "quality": "Normal", + "triggerWhenUnfocused": true, + "ignoreBots": true, + "ignoreBlocked": true + }, + "MutualGroupDMs": { + "enabled": true + }, + "NoBlockedMessages": { + "enabled": false + }, + "NoDevtoolsWarning": { + "enabled": true + }, + "NoF1": { + "enabled": true + }, + "NoMosaic": { + "enabled": false + }, + "NoPendingCount": { + "enabled": false + }, + "NoProfileThemes": { + "enabled": false + }, + "NoReplyMention": { + "enabled": false + }, + "NoScreensharePreview": { + "enabled": true + }, + "NoTypingAnimation": { + "enabled": true + }, + "NoUnblockToJump": { + "enabled": true + }, + "NormalizeMessageLinks": { + "enabled": true + }, + "NSFWGateBypass": { + "enabled": false + }, + "OnePingPerDM": { + "enabled": true, + "channelToAffect": "both_dms", + "allowMentions": false, + "allowEveryone": false + }, + "oneko": { + "enabled": true + }, + "OpenInApp": { + "enabled": false + }, + "PermissionFreeWill": { + "enabled": false + }, + "PermissionsViewer": { + "enabled": true, + "permissionsSortOrder": 0, + "defaultPermissionsDropdownState": false + }, + "petpet": { + "enabled": true + }, + "PictureInPicture": { + "enabled": false + }, + "PinDMs": { + "enabled": false + }, + "PlainFolderIcon": { + "enabled": false + }, + "PlatformIndicators": { + "enabled": true, + "list": true, + "badges": true, + "messages": true, + "colorMobileIndicator": true + }, + "PreviewMessage": { + "enabled": false + }, + "PronounDB": { + "enabled": true, + "pronounsFormat": "LOWERCASE", + "pronounSource": 0, + "showSelf": true, + "showInMessages": true, + "showInProfile": true + }, + "QuickMention": { + "enabled": false + }, + "QuickReply": { + "enabled": false + }, + "ReactErrorDecoder": { + "enabled": true + }, + "ReadAllNotificationsButton": { + "enabled": true + }, + "RelationshipNotifier": { + "enabled": true, + "offlineRemovals": true, + "groups": true, + "servers": true, + "notices": false, + "friends": true, + "friendRequestCancels": true + }, + "RevealAllSpoilers": { + "enabled": false + }, + "ReverseImageSearch": { + "enabled": true + }, + "RoleColorEverywhere": { + "enabled": true, + "chatMentions": true, + "memberList": true, + "voiceUsers": true + }, + "SearchReply": { + "enabled": true + }, + "SecretRingToneEnabler": { + "enabled": true + }, + "SendTimestamps": { + "enabled": false + }, + "ServerListIndicators": { + "enabled": true, + "mode": 2 + }, + "ShikiCodeblocks": { + "enabled": true, + "theme": "https://raw.githubusercontent.com/shikijs/shiki/0b28ad8ccfbf2615f2d9d38ea8255416b8ac3043/packages/shiki/themes/dark-plus.json", + "tryHljs": "SECONDARY", + "useDevIcon": "GREYSCALE", + "bgOpacity": 100 + }, + "ShowAllMessageButtons": { + "enabled": false + }, + "ShowConnections": { + "enabled": true, + "iconSpacing": 1, + "iconSize": 32 + }, + "ShowHiddenChannels": { + "enabled": true, + "hideUnreads": true, + "showMode": 0, + "defaultAllowedUsersAndRolesDropdownState": true + }, + "ShowMeYourName": { + "enabled": true, + "mode": "nick-user", + "displayNames": false, + "inReplies": false + }, + "SilentMessageToggle": { + "enabled": false + }, + "SilentTyping": { + "enabled": true, + "showIcon": true, + "isEnabled": true + }, + "SortFriendRequests": { + "enabled": true, + "showDates": true + }, + "SpotifyControls": { + "enabled": true, + "hoverControls": true, + "useSpotifyUris": true + }, + "SpotifyCrack": { + "enabled": true, + "noSpotifyAutoPause": true, + "keepSpotifyActivityOnIdle": false + }, + "SpotifyShareCommands": { + "enabled": true + }, + "StartupTimings": { + "enabled": true + }, + "TextReplace": { + "enabled": false + }, + "ThemeAttributes": { + "enabled": false + }, + "TimeBarAllActivities": { + "enabled": false + }, + "Translate": { + "enabled": true, + "autoTranslate": false + }, + "TypingIndicator": { + "enabled": false + }, + "TypingTweaks": { + "enabled": false + }, + "Unindent": { + "enabled": false + }, + "UnsuppressEmbeds": { + "enabled": false + }, + "UrbanDictionary": { + "enabled": false + }, + "UserVoiceShow": { + "enabled": true + }, + "USRBG": { + "enabled": false, + "nitroFirst": true, + "voiceBackground": true + }, + "ValidUser": { + "enabled": false + }, + "VoiceChatDoubleClick": { + "enabled": true + }, + "VcNarrator": { + "enabled": false + }, + "VencordToolbox": { + "enabled": false + }, + "ViewIcons": { + "enabled": false + }, + "ViewRaw": { + "enabled": false + }, + "VoiceMessages": { + "enabled": false + }, + "WebContextMenus": { + "enabled": true, + "addBack": true + }, + "WebKeybinds": { + "enabled": true + }, + "WhoReacted": { + "enabled": false + }, + "Wikisearch": { + "enabled": false + }, + "SuperReactionTweaks": { + "enabled": false + }, + "ChatInputButtonAPI": { + "enabled": true + }, + "BetterGifPicker": { + "enabled": false + }, + "ClientTheme": { + "enabled": false + }, + "Decor": { + "enabled": false + }, + "FixCodeblockGap": { + "enabled": false + }, + "FixYoutubeEmbeds": { + "enabled": false + }, + "DisableCallIdle": { + "enabled": true + }, + "NewGuildSettings": { + "enabled": true, + "guild": true, + "everyone": true, + "role": true + }, + "ShowHiddenThings": { + "enabled": false + }, + "PartyMode": { + "enabled": false, + "superIntensePartyMode": 0 + }, + "MessageUpdaterAPI": { + "enabled": true + }, + "AutomodContext": { + "enabled": false + }, + "BetterRoleContext": { + "enabled": false + }, + "BetterSessions": { + "enabled": false + }, + "BetterSettings": { + "enabled": false + }, + "CtrlEnterSend": { + "enabled": false + }, + "CustomIdle": { + "enabled": false + }, + "DontRoundMyTimestamps": { + "enabled": false + }, + "FriendsSince": { + "enabled": false + }, + "ImageLink": { + "enabled": false + }, + "ImplicitRelationships": { + "enabled": false + }, + "ServerInfo": { + "enabled": true + } + }, + "notifications": { + "timeout": 5000, + "position": "bottom-right", + "useNative": "not-focused", + "logLimit": 50 + }, + "cloud": { + "authenticated": false, + "url": "https://api.vencord.dev/", + "settingsSync": false, + "settingsSyncVersion": 1717817629006 + } + } + ''; + }; +} diff --git a/home/ebisu/core/communication/irc.nix b/home/ebisu/core/communication/irc.nix new file mode 100644 index 0000000..81ce13e --- /dev/null +++ b/home/ebisu/core/communication/irc.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + imports = [ ./catgirl.nix ]; + + home.packages = with pkgs; [ + litterbox + pounce + ]; +} diff --git a/home/ebisu/core/default.nix b/home/ebisu/core/default.nix index fbcd911..3cb2b99 100644 --- a/home/ebisu/core/default.nix +++ b/home/ebisu/core/default.nix @@ -1,6 +1,14 @@ { config, inputs, ... }: { imports = [ + ./communication + ./editor + ./education + ./nix + ./rice + ./system + ./utility + ./language.nix inputs.tailray.homeManagerModules.default ]; diff --git a/home/ebisu/core/editor/default.nix b/home/ebisu/core/editor/default.nix new file mode 100644 index 0000000..fd98a64 --- /dev/null +++ b/home/ebisu/core/editor/default.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + # imports = [ ./vscode-fhs.nix ]; + + home.packages = with pkgs; [ + emacs + neovide + # jetbrains.clion + lunarvim + zed-editor + vscode + ]; +} diff --git a/home/ebisu/core/editor/vscode-fhs.nix b/home/ebisu/core/editor/vscode-fhs.nix new file mode 100644 index 0000000..e26bb85 --- /dev/null +++ b/home/ebisu/core/editor/vscode-fhs.nix @@ -0,0 +1,23 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ vscode-fhs ]; + + # xdg.configFile."code-flags.conf".text = '' + # --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer,TouchpadOverscrollHistoryNavigation + # --ozone-platform=wayland + # --ignore-gpu-blocklist + # --enable-gpu-rasterization + # --enable-zero-copy + # --disable-gpu-driver-bug-workarounds + # --enable-features=VaapiVideoDecoder + # --enable-native-gpu-memory-buffers + # --disable-features=UseSkiaRenderer + # --use-cmd-decoder=passthrough + # --process-per-site + # --force-dark-mode + # --enable-features=WebUIDarkMode + # --enable-unsafe-webgpu + # --gtk-version=4 + # --enable-wayland-ime + # ''; +} diff --git a/home/ebisu/core/education/calculator.nix b/home/ebisu/core/education/calculator.nix new file mode 100644 index 0000000..1022e18 --- /dev/null +++ b/home/ebisu/core/education/calculator.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + gavin-bc + qalculate-gtk + programmer-calculator + ]; +} diff --git a/home/ebisu/core/education/default.nix b/home/ebisu/core/education/default.nix new file mode 100644 index 0000000..f9f54cc --- /dev/null +++ b/home/ebisu/core/education/default.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + imports = [ ./calculator.nix ]; + + home.packages = with pkgs; [ + anki-bin + obsidian + ]; +} diff --git a/home/ebisu/core/language.nix b/home/ebisu/core/language.nix new file mode 100644 index 0000000..6bb8476 --- /dev/null +++ b/home/ebisu/core/language.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + codespell + jiten + # tagainijisho + typos + ]; +} diff --git a/home/ebisu/core/nix/default.nix b/home/ebisu/core/nix/default.nix new file mode 100644 index 0000000..0de3430 --- /dev/null +++ b/home/ebisu/core/nix/default.nix @@ -0,0 +1,33 @@ +{ + pkgs, + inputs, + ... +}: +{ + imports = [ + ./development + ./direnv.nix + ./rui.nix + ]; + + home.packages = + with pkgs; + with inputs; + [ + nix-tree + nix-visualize + nix-output-monitor + cachix + nix-alien.packages.${pkgs.system}.nix-alien + manix + nix-diff + nix-fast-build + nix-melt + nixos-shell + nix-du + nvd + cached-nix-shell + omnix.packages.${pkgs.system}.default + nix-search.packages.${system}.default + ]; +} diff --git a/home/ebisu/core/nix/development/default.nix b/home/ebisu/core/nix/development/default.nix new file mode 100644 index 0000000..7c92172 --- /dev/null +++ b/home/ebisu/core/nix/development/default.nix @@ -0,0 +1,9 @@ +{ + imports = [ + ./formatting.nix + ./lsp.nix + ./tools.nix + ]; + + services.lorri.enable = true; +} diff --git a/home/ebisu/core/nix/development/formatting.nix b/home/ebisu/core/nix/development/formatting.nix new file mode 100644 index 0000000..f543d06 --- /dev/null +++ b/home/ebisu/core/nix/development/formatting.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + alejandra + nixfmt-rfc-style + ]; +} diff --git a/home/ebisu/core/nix/development/lsp.nix b/home/ebisu/core/nix/development/lsp.nix new file mode 100644 index 0000000..7f7e8fc --- /dev/null +++ b/home/ebisu/core/nix/development/lsp.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + nil + nixd + ]; +} diff --git a/home/ebisu/core/nix/development/tools.nix b/home/ebisu/core/nix/development/tools.nix new file mode 100644 index 0000000..16b5d6b --- /dev/null +++ b/home/ebisu/core/nix/development/tools.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + statix + nurl + nix-init + nix-prefetch-git + deadnix + update-nix-fetchgit + nix-prefetch-scripts + devenv + niv + nixpkgs-hammering + devbox + compose2nix + nix-update + ]; +} diff --git a/home/ebisu/core/nix/direnv.nix b/home/ebisu/core/nix/direnv.nix new file mode 100644 index 0000000..9f73981 --- /dev/null +++ b/home/ebisu/core/nix/direnv.nix @@ -0,0 +1,7 @@ +{ + programs.direnv = { + enable = true; + silent = true; + nix-direnv.enable = true; + }; +} diff --git a/home/ebisu/core/nix/rui.nix b/home/ebisu/core/nix/rui.nix new file mode 100644 index 0000000..23a879f --- /dev/null +++ b/home/ebisu/core/nix/rui.nix @@ -0,0 +1,30 @@ +{ + flakeDirectory, + lib, + pkgs, + ... +}: +{ + programs.rui = { + enable = true; + + settings = { + notify = true; + editor = "${lib.getExe pkgs.zed-editor}"; + flake = flakeDirectory; + + # notifier = "${lib.getExe ( + # pkgs.writeShellScriptBin "rui-notifier" '' + # curl -X "POST" "https://api.day.app/$(cat ${config.sops.secrets.bark_api_key.path})" \ + # -H 'Content-Type: application/json; charset=utf-8' \ + # --silent \ + # -d '{ + # "body": "'"$2"'", + # "title": "'"$1"'", + # "icon": "https://nixos.wiki/images/thumb/2/20/Home-nixos-logo.png/207px-Home-nixos-logo.png" + # }' + # '' + # )}"; + }; + }; +} diff --git a/home/ebisu/core/rice/bottom.nix b/home/ebisu/core/rice/bottom.nix new file mode 100644 index 0000000..8f3bc4b --- /dev/null +++ b/home/ebisu/core/rice/bottom.nix @@ -0,0 +1,195 @@ +{ + programs.bottom.enable = true; + + xdg.configFile."bottom/bottom.toml".text = '' + # This is a default config file for bottom. All of the settings are commented + # out by default; if you wish to change them uncomment and modify as you see + # fit. + + # This group of options represents a command-line flag/option. Flags explicitly + # added when running (ie: btm -a) will override this config file if an option + # is also set here. + + [flags] + # Whether to hide the average cpu entry. + #hide_avg_cpu = false + # Whether to use dot markers rather than braille. + #dot_marker = false + # The update rate of the application. + rate = "250ms" + # Whether to put the CPU legend to the left. + #left_legend = false + # Whether to set CPU% on a process to be based on the total CPU or just current usage. + #current_usage = false + # Whether to set CPU% on a process to be based on the total CPU or per-core CPU% (not divided by the number of cpus). + #unnormalized_cpu = false + # Whether to group processes with the same name together by default. + #group_processes = false + # Whether to make process searching case sensitive by default. + #case_sensitive = false + # Whether to make process searching look for matching the entire word by default. + #whole_word = false + # Whether to make process searching use regex by default. + #regex = false + # Defaults to Celsius. Temperature is one of: + #temperature_type = "k" + #temperature_type = "f" + #temperature_type = "c" + #temperature_type = "kelvin" + #temperature_type = "fahrenheit" + #temperature_type = "celsius" + # The default time interval (in milliseconds). + #default_time_value = "60s" + # The time delta on each zoom in/out action (in milliseconds). + #time_delta = 15000 + # Hides the time scale. + #hide_time = false + # Override layout default widget + #default_widget_type = "proc" + #default_widget_count = 1 + # Expand selected widget upon starting the app + #expanded_on_startup = true + # Use basic mode + basic = false + # Use the old network legend style + #use_old_network_legend = false + # Remove space in tables + #hide_table_gap = false + # Show the battery widgets + battery = false + # Disable mouse clicks + #disable_click = false + # Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light" + #color = "default" + # Show memory values in the processes widget as values by default + #mem_as_value = false + # Show tree mode by default in the processes widget. + #tree = false + # Shows an indicator in table widgets tracking where in the list you are. + #show_table_scroll_position = false + # Show processes as their commands by default in the process widget. + #process_command = false + # Displays the network widget with binary prefixes. + #network_use_binary_prefix = false + # Displays the network widget using bytes. + #network_use_bytes = false + # Displays the network widget with a log scale. + #network_use_log = false + # Hides advanced options to stop a process on Unix-like systems. + #disable_advanced_kill = false + # Shows GPU(s) memory + enable_gpu_memory = true + # Shows cache and buffer memory + enable_cache_memory = true + # How much data is stored at once in terms of time. + #retention = "10m" + + # These are flags around the process widget. + + #[processes] + #columns = ["PID", "Name", "CPU%", "Mem%", "R/s", "W/s", "T.Read", "T.Write", "User", "State"] + + # These are all the components that support custom theming. Note that colour support + # will depend on terminal support. + + #[colors] # Uncomment if you want to use custom colors + # Represents the colour of table headers (processes, CPU, disks, temperature). + #table_header_color="LightBlue" + # Represents the colour of the label each widget has. + #widget_title_color="Gray" + # Represents the average CPU color. + #avg_cpu_color="Red" + # Represents the colour the core will use in the CPU legend and graph. + #cpu_core_colors=["LightMagenta", "LightYellow", "LightCyan", "LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] + # Represents the colour RAM will use in the memory legend and graph. + #ram_color="LightMagenta" + # Represents the colour SWAP will use in the memory legend and graph. + #swap_color="LightYellow" + # Represents the colour ARC will use in the memory legend and graph. + #arc_color="LightCyan" + # Represents the colour the GPU will use in the memory legend and graph. + #gpu_core_colors=["LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] + # Represents the colour rx will use in the network legend and graph. + #rx_color="LightCyan" + # Represents the colour tx will use in the network legend and graph. + #tx_color="LightGreen" + # Represents the colour of the border of unselected widgets. + #border_color="Gray" + # Represents the colour of the border of selected widgets. + #highlighted_border_color="LightBlue" + # Represents the colour of most text. + #text_color="Gray" + # Represents the colour of text that is selected. + #selected_text_color="Black" + # Represents the background colour of text that is selected. + #selected_bg_color="LightBlue" + # Represents the colour of the lines and text of the graph. + #graph_color="Gray" + # Represents the colours of the battery based on charge + #high_battery_color="green" + #medium_battery_color="yellow" + #low_battery_color="red" + + # Layout - layouts follow a pattern like this: + # [[row]] represents a row in the application. + # [[row.child]] represents either a widget or a column. + # [[row.child.child]] represents a widget. + # + # All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. + # All layout components have a ratio value - if this is not set, then it defaults to 1. + # The default widget layout: + #[[row]] + # ratio=30 + # [[row.child]] + # type="cpu" + #[[row]] + # ratio=40 + # [[row.child]] + # ratio=4 + # type="mem" + # [[row.child]] + # ratio=3 + # [[row.child.child]] + # type="temp" + # [[row.child.child]] + # type="disk" + #[[row]] + # ratio=30 + # [[row.child]] + # type="net" + # [[row.child]] + # type="proc" + # default=true + + + # Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly + # a bit hard to use as of now, and there is a planned in-app interface for managing this in the future: + #[disk_filter] + #is_list_ignored = true + #list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] + #regex = true + #case_sensitive = false + #whole_word = false + + #[mount_filter] + #is_list_ignored = true + #list = ["/mnt/.*", "/boot"] + #regex = true + #case_sensitive = false + #whole_word = false + + #[temp_filter] + #is_list_ignored = true + #list = ["cpu", "wifi"] + #regex = false + #case_sensitive = false + #whole_word = false + + #[net_filter] + #is_list_ignored = true + #list = ["virbr0.*"] + #regex = true + #case_sensitive = false + #whole_word = false + ''; +} diff --git a/home/ebisu/core/rice/default.nix b/home/ebisu/core/rice/default.nix new file mode 100644 index 0000000..e9c70a1 --- /dev/null +++ b/home/ebisu/core/rice/default.nix @@ -0,0 +1,27 @@ +{ pkgs, ... }: +{ + imports = [ + ./bottom.nix + ./fastfetch.nix + ./glances.nix + ./gtk.nix + ]; + + programs = { + btop.enable = true; + pywal.enable = true; + }; + + home.packages = with pkgs; [ + cpufetch + iotop + nvtopPackages.nvidia + htop-vim + iftop + neofetch + microfetch + pfetch-rs + ipfetch + hayabusa + ]; +} diff --git a/home/ebisu/core/rice/fastfetch.nix b/home/ebisu/core/rice/fastfetch.nix new file mode 100644 index 0000000..8020e57 --- /dev/null +++ b/home/ebisu/core/rice/fastfetch.nix @@ -0,0 +1,32 @@ +{ config, flakeDirectory, ... }: +{ + programs.fastfetch = { + enable = true; + + settings = { + logo = { + source = "${flakeDirectory}/home/${config.home.username}/logo.png"; + width = 30; + padding.top = 0; + }; + + modules = [ + "title" + "break" + "os" + "kernel" + "uptime" + "packages" + "shell" + "de" + "wm" + "terminal" + "cpu" + "gpu" + "memory" + "break" + "colors" + ]; + }; + }; +} diff --git a/home/ebisu/core/rice/glances.nix b/home/ebisu/core/rice/glances.nix new file mode 100644 index 0000000..98ca51b --- /dev/null +++ b/home/ebisu/core/rice/glances.nix @@ -0,0 +1,827 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ glances ]; + + xdg.configFile."glances/glances.conf".text = '' + ############################################################################## + # Globals Glances parameters + ############################################################################## + + [global] + # Stats refresh rate (default is a minimum of 2 seconds) + # Can be overwrite by the -t <sec> option + # It is also possible to overwrite it in each plugin sections + refresh=0 + # Does Glances should check if a newer version is available on PyPI ? + check_update=true + # History size (maximum number of values) + # Default is 1200 values (~1h with the default refresh rate) + history_size=1200 + # Set the way Glances should display the date (default is %Y-%m-%d %H:%M:%S %Z) + #strftime_format="%Y-%m-%d %H:%M:%S %Z" + # Define external directory for loading additional plugins + # The layout follows the glances standard for plugin definitions + #plugin_dir=/home/user/dev/plugins + + ############################################################################## + # User interface + ############################################################################## + + [outputs] + # Options for all UIs + #-------------------- + # Separator in the Curses and WebUI interface (between top and others plugins) + separator=True + # Set the the Curses and WebUI interface left menu plugin list (comma-separated) + #left_menu=network,wifi,connections,ports,diskio,fs,irq,folders,raid,smart,sensors,now + # Limit the number of processes to display (in the WebUI) + max_processes_display=25 + # Options for WebUI + #------------------ + # Set URL prefix for the WebUI and the API + # Example: url_prefix=/glances/ => http://localhost/glances/ + # Note: The final / is mandatory + # Default is no prefix (/) + #url_prefix=/glances/ + # Set root path for WebUI statics files + # Why ? On Debian system, WebUI statics files are not provided. + # You can download it in a specific folder + # thanks to https://github.com/nicolargo/glances/issues/2021 + # then configure this folder with the webui_root_path key + # Default is folder where glances_restfull_api.py is hosted + #webui_root_path= + # CORS options + # Comma separated list of origins that should be permitted to make cross-origin requests. + # Default is * + #cors_origins=* + # Indicate that cookies should be supported for cross-origin requests. + # Default is True + #cors_credentials=True + # Comma separated list of HTTP methods that should be allowed for cross-origin requests. + # Default is * + #cors_methods=* + # Comma separated list of HTTP request headers that should be supported for cross-origin requests. + # Default is * + #cors_headers=* + + ############################################################################## + # Plugins + ############################################################################## + + [quicklook] + # Set to true to disable a plugin + # Note: you can also disable it from the command line (see --disable-plugin <plugin_name>) + disable=False + # Stats list (default is cpu,mem,load) + # Available stats are: cpu,mem,load,swap + list=cpu,mem,load + # Graphical bar char used in the terminal user interface (default is |) + bar_char=| + # Define CPU, MEM and SWAP thresholds in % + cpu_careful=50 + cpu_warning=70 + cpu_critical=90 + mem_careful=50 + mem_warning=70 + mem_critical=90 + swap_careful=50 + swap_warning=70 + swap_critical=90 + # Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages + # With 1 CPU core, the load should be lower than 1.00 ~ 100% + load_careful=70 + load_warning=100 + load_critical=500 + + [system] + # This plugin display the first line in the Glances UI with: + # Hostname / Operating system name / Architecture information + # Set to true to disable a plugin + disable=False + # Default refresh rate is 60 seconds + #refresh=60 + # System information to display (a string where {key} will be replaced by the value) + # Available information are: hostname, os_name, os_version, os_arch, linux_distro, platform + #system_info_msg= | My {os_name} system | + + [cpu] + disable=False + # See https://scoutapm.com/blog/slow_server_flow_chart + # + # I/O wait percentage should be lower than 1/# (# = Logical CPU cores) + # Leave commented to just use the default config: + # Careful=1/#*100-20% / Warning=1/#*100-10% / Critical=1/#*100 + #iowait_careful=30 + #iowait_warning=40 + #iowait_critical=50 + # + # Total % is 100 - idle + total_careful=65 + total_warning=75 + total_critical=85 + total_log=True + # + # Default values if not defined: 50/70/90 (except for iowait) + user_careful=50 + user_warning=70 + user_critical=90 + user_log=False + #user_critical_action=echo {{user}} {{value}} {{max}} > /tmp/cpu.alert + # + system_careful=50 + system_warning=70 + system_critical=90 + system_log=False + # + steal_careful=50 + steal_warning=70 + steal_critical=90 + #steal_log=True + # + # Context switch limit (core / second) + # Leave commented to just use the default config critical is 50000*(Logical CPU cores) + #ctx_switches_careful=10000 + #ctx_switches_warning=12000 + #ctx_switches_critical=14000 + + [percpu] + disable=False + # Define the maximum number of CPU displayed at a time + # If the number of CPU is higher than the one configured in max_cpu_display then: + # - display top 'max_cpu_display' (sorted by CPU consumption) + # - a last line will be added with the mean of all other CPUs + max_cpu_display=4 + # Define CPU thresholds in % + # Default values if not defined: 50/70/90 + user_careful=50 + user_warning=70 + user_critical=90 + iowait_careful=50 + iowait_warning=70 + iowait_critical=90 + system_careful=50 + system_warning=70 + system_critical=90 + + [gpu] + disable=False + # Default processor values if not defined: 50/70/90 + proc_careful=50 + proc_warning=70 + proc_critical=90 + # Default memory values if not defined: 50/70/90 + mem_careful=50 + mem_warning=70 + mem_critical=90 + # Temperature + temperature_careful=60 + temperature_warning=70 + temperature_critical=80 + + [mem] + disable=False + # Define RAM thresholds in % + # Default values if not defined: 50/70/90 + careful=50 + #careful_action_repeat=echo {{percent}} >> /tmp/memory.alert + warning=70 + critical=90 + + [memswap] + disable=False + # Define SWAP thresholds in % + # Default values if not defined: 50/70/90 + careful=50 + warning=70 + critical=90 + + [load] + disable=False + # Define LOAD thresholds + # Value * number of cores + # Default values if not defined: 0.7/1.0/5.0 per number of cores + # Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages + # http://www.linuxjournal.com/article/9001 + careful=0.7 + warning=1.0 + critical=5.0 + #log=False + + [network] + disable=False + # Default bitrate thresholds in % of the network interface speed + # Default values if not defined: 70/80/90 + rx_careful=70 + rx_warning=80 + rx_critical=90 + tx_careful=70 + tx_warning=80 + tx_critical=90 + # Define the list of hidden network interfaces (comma-separated regexp) + hide=docker.*,lo + # Define the list of wireless network interfaces to be show (comma-separated) + #show=docker.* + # Automatically hide interface not up (default is False) + #hide_no_up=True + # Automatically hide interface with no IP address (default is False) + #hide_no_ip=True + # It is possible to overwrite the bitrate thresholds per interface + # WLAN 0 Default limits (in bits per second aka bps) for interface bitrate + #wlan0_rx_careful=4000000 + #wlan0_rx_warning=5000000 + #wlan0_rx_critical=6000000 + #wlan0_rx_log=True + #wlan0_tx_careful=700000 + #wlan0_tx_warning=900000 + #wlan0_tx_critical=1000000 + #wlan0_tx_log=True + # Alias for network interface name + #alias=wlp2s0:WIFI + + [ip] + # Disable display of private IP address + disable=False + # Configure the online service where public IP address information will be downloaded + # - public_disabled: Disable public IP address information (set to True for offline platform) + # - public_refresh_interval: Refresh interval between to calls to the online service + # - public_api: URL of the API (the API should return an JSON object) + # - public_username: Login for the online service (if needed) + # - public_password: Password for the online service (if needed) + # - public_field: Field name of the public IP address in onlibe service JSON message + # - public_template: Template to build the public message + # + # Example for IPLeak service: + # public_api=https://ipv4.ipleak.net/json/ + # public_field=ip + # public_template={ip} {continent_name}/{country_name}/{city_name} + # + public_disabled=True + public_refresh_interval=300 + public_api=https://ipv4.ipleak.net/json/ + #public_username=<myname> + #public_password=<mysecret> + public_field=ip + public_template={continent_name}/{country_name}/{city_name} + + [connections] + # Display additional information about TCP connections + # This plugin is disabled by default because it consumes lots of CPU + disable=False + # nf_conntrack thresholds in % + nf_conntrack_percent_careful=70 + nf_conntrack_percent_warning=80 + nf_conntrack_percent_critical=90 + + [wifi] + disable=False + # Define SIGNAL thresholds in dBm (lower is better...) + # Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength + careful=-65 + warning=-75 + critical=-85 + + [diskio] + disable=False + # Define the list of hidden disks (comma-separated regexp) + #hide=sda2,sda5,loop.* + hide=loop.*,/dev/loop.* + # Define the list of disks to be show (comma-separated) + #show=sda.* + # Alias for sda1 and sdb1 + #alias=sda1:SystemDisk,sdb1:DataDisk + + [fs] + disable=False + # Define the list of file system to hide (comma-separated regexp) + hide=/boot.*,.*/snap.* + # Define the list of file system to show (comma-separated regexp) + #show=/,/srv + # Define filesystem space thresholds in % + # Default values if not defined: 50/70/90 + # It is also possible to define per mount point value + # Example: /_careful=40 + careful=50 + warning=70 + critical=90 + # Allow additional file system types (comma-separated FS type) + #allow=shm + # Alias for root file system + #alias=/:Root + + [irq] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/irq.html + # This plugin is disabled by default + disable=True + + [folders] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/folders.html + disable=False + # Define a folder list to monitor + # The list is composed of items (list_#nb <= 10) + # An item is defined by: + # * path: absolute path + # * careful: optional careful threshold (in MB) + # * warning: optional warning threshold (in MB) + # * critical: optional critical threshold (in MB) + # * refresh: interval in second between two refreshes + #folder_1_path=/tmp + #folder_1_careful=2500 + #folder_1_warning=3000 + #folder_1_critical=3500 + #folder_1_refresh=60 + #folder_2_path=/home/nicolargo/Videos + #folder_2_warning=17000 + #folder_2_critical=20000 + #folder_3_path=/nonexisting + #folder_4_path=/root + + [cloud] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/cloud.html + # This plugin is disabled by default + disable=True + + [raid] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/raid.html + # This plugin is disabled by default + disable=True + + [smart] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/smart.html + # This plugin is disabled by default + disable=True + + [hddtemp] + disable=False + # Define hddtemp server IP and port (default is 127.0.0.1 and 7634 (TCP)) + host=127.0.0.1 + port=7634 + + [sensors] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/sensors.html + disable=False + # Set the refresh multiplicator for the sensors + # By default refresh every Glances refresh * 3 (increase to reduce CPU consumption) + #refresh=3 + # Hide some sensors (comma separated list of regexp) + hide=unknown.* + # Show only the following sensors (comma separated list of regexp) + #show=CPU.* + # Sensors core thresholds (in Celsius...) + # Default values are grabbed from the system + #temperature_core_careful=45 + #temperature_core_warning=65 + #temperature_core_critical=80 + # Temperatures threshold in °C for hddtemp + # Default values if not defined: 45/52/60 + temperature_hdd_careful=45 + temperature_hdd_warning=52 + temperature_hdd_critical=60 + # Battery threshold in % + battery_careful=80 + battery_warning=90 + battery_critical=95 + # Fan speed threashold in RPM + #fan_speed_careful=100 + # Sensors alias + #alias=core 0:CPU Core 0,core 1:CPU Core 1 + + [processcount] + disable=False + # If you want to change the refresh rate of the processing list, please uncomment: + #refresh=10 + + [processlist] + disable=False + # Sort key: if not defined, the sort is automatically done by Glances (recommended) + # Should be one of the following: + # cpu_percent, memory_percent, io_counters, name, cpu_times, username + #sort_key=memory_percent + # Define CPU/MEM (per process) thresholds in % + # Default values if not defined: 50/70/90 + cpu_careful=50 + cpu_warning=70 + cpu_critical=90 + mem_careful=50 + mem_warning=70 + mem_critical=90 + # + # Nice priorities range from -20 to 19. + # Configure nice levels using a comma-separated list. + # + # Nice: Example 1, non-zero is warning (default behavior) + nice_warning=-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 + # + # Nice: Example 2, low priority processes escalate from careful to critical + #nice_careful=1,2,3,4,5,6,7,8,9 + #nice_warning=10,11,12,13,14 + #nice_critical=15,16,17,18,19 + # + # Define the list of processes to export using: + # a comma-separated list of Glances filter + #export=.*firefox.*,pid:1234 + + [ports] + disable=False + # Interval in second between two scans + # Ports scanner plugin configuration + refresh=30 + # Set the default timeout (in second) for a scan (can be overwritten in the scan list) + timeout=3 + # If port_default_gateway is True, add the default gateway on top of the scan list + port_default_gateway=True + # + # Define the scan list (1 < x < 255) + # port_x_host (name or IP) is mandatory + # port_x_port (TCP port number) is optional (if not set, use ICMP) + # port_x_description is optional (if not set, define to host:port) + # port_x_timeout is optional and overwrite the default timeout value + # port_x_rtt_warning is optional and defines the warning threshold in ms + # + #port_1_host=192.168.0.1 + #port_1_port=80 + #port_1_description=Home Box + #port_1_timeout=1 + #port_2_host=www.free.fr + #port_2_description=My ISP + #port_3_host=www.google.com + #port_3_description=Internet ICMP + #port_3_rtt_warning=1000 + #port_4_description=Internet Web + #port_4_host=www.google.com + #port_4_port=80 + #port_4_rtt_warning=1000 + # + # Define Web (URL) monitoring list (1 < x < 255) + # web_x_url is the URL to monitor (example: http://my.site.com/folder) + # web_x_description is optional (if not set, define to URL) + # web_x_timeout is optional and overwrite the default timeout value + # web_x_rtt_warning is optional and defines the warning respond time in ms (approximately) + # + #web_1_url=https://blog.nicolargo.com + #web_1_description=My Blog + #web_1_rtt_warning=3000 + #web_2_url=https://github.com + #web_3_url=http://www.google.fr + #web_3_description=Google Fr + #web_4_url=https://blog.nicolargo.com/nonexist + #web_4_description=Intranet + + [containers] + disable=False + # Only show specific containers (comma-separated list of container name or regular expression) + # Comment this line to display all containers (default configuration) + ; show=telegraf + # Hide some containers (comma-separated list of container name or regular expression) + # Comment this line to display all containers (default configuration) + ; hide=telegraf + # Define the maximum docker size name (default is 20 chars) + max_name_size=20 + ; cpu_careful=50 + # Thresholds for CPU and MEM (in %) + ; cpu_warning=70 + ; cpu_critical=90 + ; mem_careful=20 + ; mem_warning=50 + ; mem_critical=70 + # + # Per container thresholds + ; containername_cpu_careful=10 + ; containername_cpu_warning=20 + ; containername_cpu_critical=30 + # + # By default, Glances only display running containers + # Set the following key to True to display all containers + all=False + # Define Podman sock + ; podman_sock=unix:///run/user/1000/podman/podman.sock + + [amps] + # AMPs configuration are defined in the bottom of this file + disable=False + + [alert] + disable=False + # Maximum number of events to display (default is 10 events) + ;max_events=10 + # Minimum duration for an event to be taken into account (default is 6 seconds) + ;min_duration=6 + # Minimum time between two events of the same type (default is 6 seconds) + # This is used to avoid too many alerts for the same event + # Events will be merged + ;min_interval=6 + + ############################################################################## + # Client/server + ############################################################################## + + [serverlist] + # Define the static servers list + #server_1_name=localhost + #server_1_alias=My local PC + #server_1_port=61209 + #server_2_name=localhost + #server_2_port=61235 + #server_3_name=192.168.0.17 + #server_3_alias=Another PC on my network + #server_3_port=61209 + #server_4_name=pasbon + #server_4_port=61237 + + [passwords] + # Define the passwords list related to the [serverlist] section + # Syntax: host=password + # Where: host is the hostname + # password is the clear password + # Additionally (and optionally) a default password could be defined + #localhost=abc + #default=defaultpassword + # + # Define the path of the local '.pwd' file (default is system one) + #local_password_path=~/.config/glances + + ############################################################################## + # Exports + ############################################################################## + + [graph] + # Configuration for the --export graph option + # Set the path where the graph (.svg files) will be created + # Can be overwrite by the --graph-path command line option + path=/tmp + # It is possible to generate the graphs automatically by setting the + # generate_every to a non zero value corresponding to the seconds between + # two generation. Set it to 0 to disable graph auto generation. + generate_every=0 + # See following configuration keys definitions in the Pygal lib documentation + # http://pygal.org/en/stable/documentation/index.html + width=800 + height=600 + style=DarkStyle + + [influxdb] + # !!! + # Will be DEPRECATED in future release. + # Please have a look on the new influxdb2 export module (compatible with InfluxDB 1.8.x and 2.x) + # !!! + # Configuration for the --export influxdb option + # https://influxdb.com/ + host=localhost + port=8086 + protocol=http + user=root + password=root + db=glances + # Prefix will be added for all measurement name + # Ex: prefix=foo + # => foo.cpu + # => foo.mem + # You can also use dynamic values + #prefix=foo + # Following tags will be added for all measurements + # You can also use dynamic values. + # Note: hostname and name (for process) are always added as a tag + #tags=foo:bar,spam:eggs,domain:`domainname` + + [influxdb2] + # Configuration for the --export influxdb2 option + # https://influxdb.com/ + host=localhost + port=8086 + protocol=http + org=nicolargo + bucket=glances + token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kAdVD1purDLuxA== + # Set the interval between two exports (in seconds) + # If the interval is set to 0, the Glances refresh time is used (default behavor) + #interval=0 + # Prefix will be added for all measurement name + # Ex: prefix=foo + # => foo.cpu + # => foo.mem + # You can also use dynamic values + #prefix=foo + # Following tags will be added for all measurements + # You can also use dynamic values. + # Note: hostname and name (for process) are always added as a tag + #tags=foo:bar,spam:eggs,domain:`domainname` + + [cassandra] + # Configuration for the --export cassandra option + # Also works for the ScyllaDB + # https://influxdb.com/ or http://www.scylladb.com/ + host=localhost + port=9042 + protocol_version=3 + keyspace=glances + replication_factor=2 + # If not define, table name is set to host key + table=localhost + # If not define, username and password will not be used + #username=cassandra + #password=password + + [opentsdb] + # Configuration for the --export opentsdb option + # http://opentsdb.net/ + host=localhost + port=4242 + #prefix=glances + #tags=foo:bar,spam:eggs + + [statsd] + # Configuration for the --export statsd option + # https://github.com/etsy/statsd + host=localhost + port=8125 + #prefix=glances + + [elasticsearch] + # Configuration for the --export elasticsearch option + # Data are available via the ES RESTful API. ex: URL/<index>/cpu + # https://www.elastic.co + scheme=http + host=localhost + port=9200 + index=glances + + [riemann] + # Configuration for the --export riemann option + # http://riemann.io + host=localhost + port=5555 + + [rabbitmq] + # Configuration for the --export rabbitmq option + host=localhost + port=5672 + user=guest + password=guest + queue=glances_queue + #protocol=amqps + + [mqtt] + # Configuration for the --export mqtt option + host=localhost + # Overwrite device name in the topic + #devicename=localhost + port=8883 + tls=false + user=guest + password=guest + topic=glances + topic_structure=per-metric + callback_api_version=2 + + [couchdb] + # Configuration for the --export couchdb option + # https://www.couchdb.org + host=localhost + port=5984 + db=glances + user=admin + password=admin + + [mongodb] + # Configuration for the --export mongodb option + # https://www.mongodb.com + host=localhost + port=27017 + db=glances + user=root + password=example + + [kafka] + # Configuration for the --export kafka option + # http://kafka.apache.org/ + host=localhost + port=9092 + topic=glances + #compression=gzip + # Tags will be added for all events + #tags=foo:bar,spam:eggs + # You can also use dynamic values + #tags=hostname:`hostname -f` + + [zeromq] + # Configuration for the --export zeromq option + # http://www.zeromq.org + # Use * to bind on all interfaces + host=* + port=5678 + # Glances envelopes the stats in a publish message with two frames: + # - First frame containing the following prefix (STRING) + # - Second frame with the Glances plugin name (STRING) + # - Third frame with the Glances plugin stats (JSON) + prefix=G + + [prometheus] + # Configuration for the --export prometheus option + # https://prometheus.io + # Create a Prometheus exporter listening on localhost:9091 (default configuration) + # Metric are exporter using the following name: + # <prefix>_<plugin>_<stats>{labelkey:labelvalue} + # Note: You should add this exporter to your Prometheus server configuration: + # scrape_configs: + # - job_name: 'glances_exporter' + # scrape_interval: 5s + # static_configs: + # - targets: ['localhost:9091'] + # + # Labels will be added for all measurements (default is src:glances) + # labels=foo:bar,spam:eggs + # You can also use dynamic values + # labels=system:`uname -s` + # + host=localhost + port=9091 + #prefix=glances + labels=src:glances + + [restful] + # Configuration for the --export restful option + # Example, export to http://localhost:6789/ + host=localhost + port=6789 + protocol=http + path=/ + + [graphite] + # Configuration for the --export graphite option + # https://graphiteapp.org/ + host=localhost + port=2003 + # Prefix will be added for all measurement name + prefix=glances + # System name added between the prefix and the stats + # By default, system_name = FQDN + #system_name=mycomputer + + ############################################################################## + # AMPS + # * enable: Enable (true) or disable (false) the AMP + # * regex: Regular expression to filter the process(es) + # * refresh: The AMP is executed every refresh seconds + # * one_line: (optional) Force (if true) the AMP to be displayed in one line + # * command: (optional) command to execute when the process is detected (thk to the regex) + # * countmin: (optional) minimal number of processes + # A warning will be displayed if number of process < count + # * countmax: (optional) maximum number of processes + # A warning will be displayed if number of process > count + # * <foo>: Others variables can be defined and used in the AMP script + ############################################################################## + + [amp_dropbox] + # Use the default AMP (no dedicated AMP Python script) + # Check if the Dropbox daemon is running + # Every 3 seconds, display the 'dropbox status' command line + enable=false + regex=.*dropbox.* + refresh=3 + one_line=false + command=dropbox status + countmin=1 + + [amp_python] + # Use the default AMP (no dedicated AMP Python script) + # Monitor all the Python scripts + # Alert if more than 20 Python scripts are running + enable=false + regex=.*python.* + refresh=3 + countmax=20 + + [amp_conntrack] + # Use && separator for multiple commands + # If the regex key is not defined, the AMP will be executed every refresh second + # and the process count will not be displayed (countmin and countmax will be ignore) + enable=false + refresh=30 + one_line=false + command=sysctl net.netfilter.nf_conntrack_count && sysctl net.netfilter.nf_conntrack_max + + [amp_nginx] + # Use the NGinx AMP + # Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/) + enable=false + regex=\/usr\/sbin\/nginx + refresh=60 + one_line=false + status_url=http://localhost/nginx_status + + [amp_systemd] + # Use the Systemd AMP + enable=false + regex=\/lib\/systemd\/systemd + refresh=30 + one_line=true + systemctl_cmd=/bin/systemctl --plain + + [amp_systemv] + # Use the Systemv AMP + enable=false + regex=\/sbin\/init + refresh=30 + one_line=true + service_cmd=/usr/bin/service --status-all + ''; +} diff --git a/home/ebisu/core/rice/gtk.nix b/home/ebisu/core/rice/gtk.nix new file mode 100644 index 0000000..a3b5c5f --- /dev/null +++ b/home/ebisu/core/rice/gtk.nix @@ -0,0 +1,47 @@ +{ pkgs, config, ... }: +{ + gtk = { + enable = true; + + iconTheme = { + name = "WhiteSur-dark"; + package = pkgs.whitesur-icon-theme; + }; + + theme = { + name = "WhiteSur-Dark"; + package = pkgs.whitesur-gtk-theme; + }; + + cursorTheme = { + name = "Bibata-Modern-Ice"; + package = pkgs.bibata-cursors; + size = 18; + }; + + gtk3.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + + gtk4.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + + gtk2 = { + configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; + + extraConfig = '' + gtk-xft-antialias=1 + gtk-xft-hinting=1 + gtk-xft-hintstyle="hintslight" + gtk-xft-rgba="rgb" + ''; + }; + }; + + home.sessionVariables.GTK_THEME = "WhiteSur-Dark"; +} diff --git a/home/ebisu/core/system/default.nix b/home/ebisu/core/system/default.nix new file mode 100644 index 0000000..ffa08f2 --- /dev/null +++ b/home/ebisu/core/system/default.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + imports = [ + ./encryption + ./fonts + ./xdg.nix + ]; + + home.packages = with pkgs; [ + gnome-logs + procs + ]; +} diff --git a/home/ebisu/core/system/encryption/bitwarden.nix b/home/ebisu/core/system/encryption/bitwarden.nix new file mode 100644 index 0000000..2e5cb32 --- /dev/null +++ b/home/ebisu/core/system/encryption/bitwarden.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + bitwarden-desktop + # bitwarden-cli + # bitwarden-menu + ]; +} diff --git a/home/ebisu/core/system/encryption/default.nix b/home/ebisu/core/system/encryption/default.nix new file mode 100644 index 0000000..06b7c90 --- /dev/null +++ b/home/ebisu/core/system/encryption/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + libsForQt5.ksshaskpass + seahorse + ]; +} diff --git a/home/ebisu/core/system/fonts/default.nix b/home/ebisu/core/system/fonts/default.nix new file mode 100644 index 0000000..0a7776f --- /dev/null +++ b/home/ebisu/core/system/fonts/default.nix @@ -0,0 +1,75 @@ +{ pkgs, inputs, ... }: +{ + imports = [ ./meowsans ]; + + fonts = { + fontconfig = { + enable = true; + + defaultFonts = { + serif = [ + "New York Medium" + "Hiragino Sans" + "JoyPixels" + "Noto Color Emoji" + "FontAwesome" + ]; + + sansSerif = [ + "SF Pro Text" + "Hiragino Sans" + "JoyPixels" + "Noto Color Emoji" + "FontAwesome" + ]; + + monospace = [ + "SF Mono" + "Hiragino Sans" + "JoyPixels" + "FontAwesome" + "Braille" + ]; + }; + }; + }; + + home.packages = + with pkgs; + with inputs.apple-fonts.packages.${pkgs.system}; + [ + source-code-pro + source-han-sans + noto-fonts + noto-fonts-cjk-sans + noto-fonts-cjk-serif + noto-fonts-color-emoji + lmodern + hanazono + jigmo + iosevka + libertine + sarasa-gothic + nerdfonts + cantarell-fonts + inter + font-awesome + joypixels + hiragino-sans + weather-icons + material-design-icons + meslo-lgs-nf + sf-pro + sf-pro-nerd + sf-compact + sf-compact-nerd + sf-mono + sf-mono-nerd + sf-arabic + sf-arabic-nerd + ny + ny-nerd + ]; + + nixpkgs.config.joypixels.acceptLicense = true; +} diff --git a/home/ebisu/core/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf b/home/ebisu/core/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf Binary files differnew file mode 100644 index 0000000..0d12d34 --- /dev/null +++ b/home/ebisu/core/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf diff --git a/home/ebisu/core/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf b/home/ebisu/core/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf Binary files differnew file mode 100644 index 0000000..8bb6c1a --- /dev/null +++ b/home/ebisu/core/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf diff --git a/home/ebisu/core/system/fonts/meowsans/default.nix b/home/ebisu/core/system/fonts/meowsans/default.nix new file mode 100644 index 0000000..fbf57fc --- /dev/null +++ b/home/ebisu/core/system/fonts/meowsans/default.nix @@ -0,0 +1 @@ +{ home.file.".local/share/fonts/MeowSans_Font".source = ./MeowSans_Font; } diff --git a/home/ebisu/core/system/xdg.nix b/home/ebisu/core/system/xdg.nix new file mode 100644 index 0000000..7a0bf32 --- /dev/null +++ b/home/ebisu/core/system/xdg.nix @@ -0,0 +1,33 @@ +{ pkgs, config, ... }: +{ + home.packages = with pkgs; [ + xdg-utils + xdg-ninja + ]; + + xdg = { + enable = true; + cacheHome = "${config.home.homeDirectory}/.cache"; + configHome = "${config.home.homeDirectory}/.config"; + dataHome = "${config.home.homeDirectory}/.local/share"; + stateHome = "${config.home.homeDirectory}/.local/state"; + + userDirs = { + enable = pkgs.stdenv.isLinux; + createDirectories = true; + download = "${config.home.homeDirectory}/Downloads"; + desktop = "${config.home.homeDirectory}/Desktop"; + documents = "${config.home.homeDirectory}/Documents"; + publicShare = null; # "${config.home.homeDirectory}/Public"; + templates = null; # "${config.home.homeDirectory}/Templates"; + music = "${config.home.homeDirectory}/Music"; + pictures = "${config.home.homeDirectory}/Pictures"; + videos = "${config.home.homeDirectory}/Videos"; + + extraConfig = { + XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots"; + XDG_MAIL_DIR = "${config.home.homeDirectory}/Mail"; + }; + }; + }; +} diff --git a/home/ebisu/core/utility/ai.nix b/home/ebisu/core/utility/ai.nix new file mode 100644 index 0000000..37b4e4d --- /dev/null +++ b/home/ebisu/core/utility/ai.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + ollama-cuda + shell-gpt + ]; +} diff --git a/home/ebisu/core/utility/default.nix b/home/ebisu/core/utility/default.nix new file mode 100644 index 0000000..f21b623 --- /dev/null +++ b/home/ebisu/core/utility/default.nix @@ -0,0 +1,12 @@ +{ pkgs, ... }: +{ + imports = [ ./ai.nix ]; + + home.packages = with pkgs; [ + fontpreview + tealdeer + todo + ripunzip + lemmeknow + ]; +} |