dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
commit 70555d2411e6a355f8d5979d038fba65ea8a2239 parent 55f83d6814707782c7db74d6f17ba2f812cd6d13 Author: maydayv7 <maydayv7@gmail.com> Date: Mon, 26 May 2025 16:21:46 +0530 feat: Use `nixcord` Also update `devShells`
Diffstat:
| M | devices/valkyrie/default.nix | | | 2 | +- |
| M | files/flake.nix | | | 7 | ------- |
| M | files/hyprland/kebihelp.json | | | 4 | ++++ |
| D | files/vesktop/prefs.json | | | 5 | ----- |
| D | files/vesktop/settings.json | | | 649 | ------------------------------------------------------------------------------- |
| M | files/vscode/settings.json | | | 3 | +++ |
| M | flake.lock | | | 48 | +++++++++++++++++++++++++++++++++++++++++++++--- |
| M | flake.nix | | | 12 | +++++++++++- |
| M | modules/apps/discord.nix | | | 77 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ |
| M | modules/apps/vscode.nix | | | 44 | ++++++++++++++++++++++++++------------------ |
| A | modules/apps/youtube.nix | | | 25 | +++++++++++++++++++++++++ |
| M | modules/gui/desktop/gnome/default.nix | | | 34 | ++++++++++++++++------------------ |
| M | modules/gui/desktop/hyprland/apps/misc.nix | | | 27 | ++++++++++++++------------- |
| M | modules/gui/desktop/hyprland/apps/panel.nix | | | 4 | ++-- |
| M | modules/gui/desktop/hyprland/settings/default.nix | | | 13 | ++++++++++++- |
| M | modules/gui/desktop/hyprland/settings/keybindings.nix | | | 1 | + |
| M | modules/gui/desktop/xfce/default.nix | | | 30 | ++++++++++++++---------------- |
| M | scripts/hyprutils.nix | | | 11 | +++++++++-- |
| M | shells/cc.nix | | | 5 | ++--- |
| M | shells/default.nix | | | 2 | +- |
| M | shells/java.nix | | | 23 | +++-------------------- |
| A | shells/js.nix | | | 11 | +++++++++++ |
| M | shells/python.nix | | | 21 | ++++++--------------- |
| M | shells/rust.nix | | | 13 | +++++-------- |
| M | shells/sql.nix | | | 21 | +++++++++++++-------- |
| M | shells/video.nix | | | 2 | +- |
| M | site/content/anime.md | | | 3 | +-- |
27 files changed, 297 insertions(+), 800 deletions(-)
diff --git a/devices/valkyrie/default.nix b/devices/valkyrie/default.nix @@ -49,9 +49,9 @@ "media" "notes" "office" - "spotify" "vscode" "wine" + "youtube" ]; games = [ "minecraft" diff --git a/files/flake.nix b/files/flake.nix @@ -149,13 +149,6 @@ # Document Templates templates = ./templates; - # Vesktop Discord Chat - vesktop = map.files { - directory = ./vesktop; - apply = readFile; - extension = ".json"; - }; - # Visual Studio Code Editor vscode = map.files { directory = ./vscode; diff --git a/files/hyprland/kebihelp.json b/files/hyprland/kebihelp.json @@ -418,6 +418,10 @@ { "value": "<ARROW>", "label": "Focus window in desired direction" + }, + { + "value": "Q", + "label": "Close selected window" } ] } diff --git a/files/vesktop/prefs.json b/files/vesktop/prefs.json @@ -1,5 +0,0 @@ -{ - "discordBranch": "stable", - "minimizeToTray": true, - "arRPC": true -} diff --git a/files/vesktop/settings.json b/files/vesktop/settings.json @@ -1,649 +0,0 @@ -{ - "autoUpdate": true, - "autoUpdateNotification": true, - "useQuickCss": true, - "themeLinks": [], - "enabledThemes": [], - "enableReactDevtools": false, - "frameless": false, - "transparent": false, - "winCtrlQ": false, - "disableMinSize": false, - "winNativeTitleBar": true, - "plugins": { - "ChatInputButtonAPI": { - "enabled": true - }, - "CommandsAPI": { - "enabled": true - }, - "DynamicImageModalAPI": { - "enabled": true - }, - "MemberListDecoratorsAPI": { - "enabled": true - }, - "MessageAccessoriesAPI": { - "enabled": true - }, - "MessageDecorationsAPI": { - "enabled": true - }, - "MessageEventsAPI": { - "enabled": true - }, - "MessagePopoverAPI": { - "enabled": true - }, - "MessageUpdaterAPI": { - "enabled": true - }, - "ServerListAPI": { - "enabled": true - }, - "UserSettingsAPI": { - "enabled": true - }, - "AccountPanelServerProfile": { - "enabled": false - }, - "AlwaysAnimate": { - "enabled": false - }, - "AlwaysExpandRoles": { - "enabled": false - }, - "AlwaysTrust": { - "enabled": false, - "domain": true, - "file": true - }, - "AnonymiseFileNames": { - "enabled": false - }, - "AppleMusicRichPresence": { - "enabled": false - }, - "WebRichPresence (arRPC)": { - "enabled": false - }, - "BANger": { - "enabled": false - }, - "BetterFolders": { - "enabled": true, - "sidebar": true, - "showFolderIcon": 1, - "keepIcons": false, - "closeAllHomeButton": true, - "closeAllFolders": false, - "forceOpen": false, - "sidebarAnim": true, - "closeOthers": false - }, - "BetterGifAltText": { - "enabled": true - }, - "BetterGifPicker": { - "enabled": true - }, - "BetterNotesBox": { - "enabled": false - }, - "BetterRoleContext": { - "enabled": true, - "roleIconFileFormat": "png" - }, - "BetterRoleDot": { - "enabled": false - }, - "BetterSessions": { - "enabled": true, - "backgroundCheck": false - }, - "BetterSettings": { - "enabled": true, - "disableFade": true, - "organizeMenu": true, - "eagerLoad": true - }, - "BetterUploadButton": { - "enabled": false - }, - "BiggerStreamPreview": { - "enabled": true - }, - "BlurNSFW": { - "enabled": true, - "blurAmount": 10 - }, - "CallTimer": { - "enabled": false - }, - "ClearURLs": { - "enabled": false - }, - "ClientTheme": { - "enabled": false - }, - "ColorSighted": { - "enabled": false - }, - "ConsoleJanitor": { - "enabled": false - }, - "ConsoleShortcuts": { - "enabled": false - }, - "CopyEmojiMarkdown": { - "enabled": true, - "copyUnicode": true - }, - "CopyFileContents": { - "enabled": true - }, - "CopyUserURLs": { - "enabled": true - }, - "CrashHandler": { - "enabled": true - }, - "CtrlEnterSend": { - "enabled": false, - "submitRule": "ctrl+enter", - "sendMessageInTheMiddleOfACodeBlock": true - }, - "CustomRPC": { - "enabled": false, - "type": 0, - "timestampMode": 0 - }, - "CustomIdle": { - "enabled": false, - "idleTimeout": 10, - "remainInIdle": true - }, - "Dearrow": { - "enabled": false - }, - "Decor": { - "enabled": true - }, - "DisableCallIdle": { - "enabled": false - }, - "DontRoundMyTimestamps": { - "enabled": false - }, - "EmoteCloner": { - "enabled": true - }, - "Experiments": { - "enabled": false - }, - "F8Break": { - "enabled": false - }, - "FakeNitro": { - "enabled": false - }, - "FakeProfileThemes": { - "enabled": false - }, - "FavoriteEmojiFirst": { - "enabled": true - }, - "FavoriteGifSearch": { - "enabled": true - }, - "FixCodeblockGap": { - "enabled": false - }, - "FixImagesQuality": { - "enabled": true - }, - "FixSpotifyEmbeds": { - "enabled": true - }, - "FixYoutubeEmbeds": { - "enabled": false - }, - "ForceOwnerCrown": { - "enabled": false - }, - "FriendInvites": { - "enabled": false - }, - "FriendsSince": { - "enabled": true - }, - "FullSearchContext": { - "enabled": true - }, - "GameActivityToggle": { - "enabled": false - }, - "GifPaste": { - "enabled": false - }, - "GreetStickerPicker": { - "enabled": false - }, - "HideAttachments": { - "enabled": false - }, - "iLoveSpam": { - "enabled": false - }, - "IgnoreActivities": { - "enabled": false - }, - "ImageLink": { - "enabled": false - }, - "ImageZoom": { - "enabled": true, - "saveZoomValues": true, - "invertScroll": true, - "nearestNeighbour": false, - "square": false, - "zoom": 2, - "size": 100, - "zoomSpeed": 0.5 - }, - "ImplicitRelationships": { - "enabled": false - }, - "InvisibleChat": { - "enabled": false - }, - "KeepCurrentChannel": { - "enabled": false - }, - "LastFMRichPresence": { - "enabled": false - }, - "LoadingQuotes": { - "enabled": false, - "replaceEvents": true, - "enablePluginPresetQuotes": true, - "enableDiscordPresetQuotes": false, - "additionalQuotes": "", - "additionalQuotesDelimiter": "|" - }, - "MemberCount": { - "enabled": true - }, - "MentionAvatars": { - "enabled": true, - "showAtSymbol": true - }, - "MessageClickActions": { - "enabled": true, - "enableDeleteOnClick": true, - "enableDoubleClickToEdit": true, - "enableDoubleClickToReply": true, - "requireModifier": false - }, - "MessageLatency": { - "enabled": false - }, - "MessageLinkEmbeds": { - "enabled": true - }, - "MessageLogger": { - "enabled": false - }, - "MessageTags": { - "enabled": false - }, - "MoreCommands": { - "enabled": false - }, - "MoreKaomoji": { - "enabled": true - }, - "MoreUserTags": { - "enabled": false - }, - "Moyai": { - "enabled": false - }, - "MutualGroupDMs": { - "enabled": false - }, - "NewGuildSettings": { - "enabled": false - }, - "NoBlockedMessages": { - "enabled": false - }, - "NoDevtoolsWarning": { - "enabled": false - }, - "NoF1": { - "enabled": false - }, - "NoMaskedUrlPaste": { - "enabled": false - }, - "NoMosaic": { - "enabled": false - }, - "NoOnboardingDelay": { - "enabled": false - }, - "NoPendingCount": { - "enabled": false, - "hideFriendRequestsCount": true, - "hideMessageRequestsCount": true, - "hidePremiumOffersCount": true - }, - "NoProfileThemes": { - "enabled": false - }, - "NoReplyMention": { - "enabled": false - }, - "NoScreensharePreview": { - "enabled": false - }, - "NoServerEmojis": { - "enabled": false - }, - "NoTypingAnimation": { - "enabled": false - }, - "NoUnblockToJump": { - "enabled": true - }, - "NormalizeMessageLinks": { - "enabled": false - }, - "NotificationVolume": { - "enabled": false, - "notificationVolume": 100 - }, - "NSFWGateBypass": { - "enabled": false - }, - "OnePingPerDM": { - "enabled": false, - "channelToAffect": "both_dms", - "allowMentions": false, - "allowEveryone": 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": true - }, - "PinDMs": { - "enabled": true, - "pinOrder": 0, - "dmSectioncollapsed": false - }, - "PlainFolderIcon": { - "enabled": false - }, - "PlatformIndicators": { - "enabled": true, - "list": false, - "badges": true, - "messages": false, - "colorMobileIndicator": true - }, - "PreviewMessage": { - "enabled": true - }, - "QuickMention": { - "enabled": true - }, - "QuickReply": { - "enabled": false - }, - "ReactErrorDecoder": { - "enabled": false - }, - "ReadAllNotificationsButton": { - "enabled": true - }, - "RelationshipNotifier": { - "enabled": true - }, - "ReplaceGoogleSearch": { - "enabled": false - }, - "ReplyTimestamp": { - "enabled": true - }, - "RevealAllSpoilers": { - "enabled": false - }, - "ReverseImageSearch": { - "enabled": false - }, - "ReviewDB": { - "enabled": false - }, - "RoleColorEverywhere": { - "enabled": false - }, - "SecretRingToneEnabler": { - "enabled": false - }, - "Summaries": { - "enabled": false - }, - "SendTimestamps": { - "enabled": false - }, - "ServerInfo": { - "enabled": true - }, - "ServerListIndicators": { - "enabled": true - }, - "ShikiCodeblocks": { - "enabled": false - }, - "ShowAllMessageButtons": { - "enabled": false - }, - "ShowConnections": { - "enabled": false - }, - "ShowHiddenChannels": { - "enabled": true, - "hideUnreads": true, - "showMode": 0, - "defaultAllowedUsersAndRolesDropdownState": true - }, - "ShowHiddenThings": { - "enabled": true, - "showTimeouts": true, - "showInvitesPaused": true, - "showModView": true, - "disableDiscoveryFilters": true, - "disableDisallowedDiscoveryFilters": true - }, - "ShowMeYourName": { - "enabled": true, - "mode": "user-nick", - "displayNames": false, - "inReplies": false - }, - "ShowTimeoutDuration": { - "enabled": false - }, - "SilentMessageToggle": { - "enabled": false - }, - "SilentTyping": { - "enabled": false - }, - "SortFriendRequests": { - "enabled": false - }, - "SpotifyControls": { - "enabled": false, - "hoverControls": false, - "useSpotifyUris": false - }, - "SpotifyCrack": { - "enabled": false, - "noSpotifyAutoPause": true, - "keepSpotifyActivityOnIdle": false - }, - "SpotifyShareCommands": { - "enabled": true - }, - "StartupTimings": { - "enabled": false - }, - "StickerPaste": { - "enabled": false - }, - "StreamerModeOnStream": { - "enabled": false - }, - "SuperReactionTweaks": { - "enabled": false - }, - "TextReplace": { - "enabled": false - }, - "ThemeAttributes": { - "enabled": false - }, - "Translate": { - "enabled": false - }, - "TypingIndicator": { - "enabled": false, - "includeCurrentChannel": true, - "includeMutedChannels": false, - "includeBlockedUsers": false, - "indicatorMode": 3 - }, - "TypingTweaks": { - "enabled": true, - "showAvatars": true, - "showRoleColors": true, - "alternativeFormatting": true - }, - "Unindent": { - "enabled": false - }, - "UnlockedAvatarZoom": { - "enabled": true - }, - "UnsuppressEmbeds": { - "enabled": false - }, - "UserMessagesPronouns": { - "enabled": false - }, - "UserVoiceShow": { - "enabled": false - }, - "USRBG": { - "enabled": false - }, - "ValidReply": { - "enabled": false - }, - "ValidUser": { - "enabled": true - }, - "VoiceChatDoubleClick": { - "enabled": true - }, - "VcNarrator": { - "enabled": false - }, - "VencordToolbox": { - "enabled": false - }, - "ViewIcons": { - "enabled": false - }, - "ViewRaw": { - "enabled": false - }, - "VoiceDownload": { - "enabled": true - }, - "VoiceMessages": { - "enabled": true, - "noiseSuppression": true, - "echoCancellation": true - }, - "VolumeBooster": { - "enabled": true - }, - "WebKeybinds": { - "enabled": true - }, - "WebScreenShareFixes": { - "enabled": true - }, - "WhoReacted": { - "enabled": true - }, - "XSOverlay": { - "enabled": false - }, - "YoutubeAdblock": { - "enabled": false - }, - "NoTrack": { - "enabled": true, - "disableAnalytics": true - }, - "WebContextMenus": { - "enabled": true, - "addBack": true - }, - "Settings": { - "enabled": true, - "settingsLocation": "aboveNitro" - }, - "SupportHelper": { - "enabled": true - } - }, - "notifications": { - "timeout": 5000, - "position": "bottom-right", - "useNative": "not-focused", - "logLimit": 50 - }, - "cloud": { - "authenticated": false, - "url": "https://api.vencord.dev/", - "settingsSync": false - } -} diff --git a/files/vscode/settings.json b/files/vscode/settings.json @@ -85,5 +85,8 @@ }, "[python]": { "editor.defaultFormatter": "ms-python.black-formatter" + }, + "[xml]": { + "editor.defaultFormatter": "DotJoshJohnson.xml" } } diff --git a/flake.lock b/flake.lock @@ -227,6 +227,20 @@ } }, "flake-compat_3": { + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "revCount": 69, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_4": { "flake": false, "locked": { "lastModified": 1733328505, @@ -242,7 +256,7 @@ "type": "github" } }, - "flake-compat_4": { + "flake-compat_5": { "flake": false, "locked": { "lastModified": 1673956053, @@ -977,6 +991,33 @@ "type": "github" } }, + "nixcord": { + "inputs": { + "flake-compat": "flake-compat_3", + "nixpkgs": [ + "unstable" + ], + "systems": [ + "systems" + ], + "treefmt-nix": [ + "formatter" + ] + }, + "locked": { + "lastModified": 1747679390, + "narHash": "sha256-aPfEatxYs+WadAbKOZyY/36ykYzaohLXZ8JiWms3DP8=", + "owner": "kaylorben", + "repo": "nixcord", + "rev": "22091416f12f9dc20896fce1a3530ea9c1384828", + "type": "github" + }, + "original": { + "owner": "kaylorben", + "repo": "nixcord", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1744868846, @@ -1124,6 +1165,7 @@ "hyprsplit": "hyprsplit", "impermanence": "impermanence", "index": "index", + "nixcord": "nixcord", "nixpkgs": [ "unstable" ], @@ -1226,7 +1268,7 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "flake-utils": [ "utils" ], @@ -1477,7 +1519,7 @@ }, "windows": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_5", "nixpkgs": [ "unstable" ] diff --git a/flake.nix b/flake.nix @@ -110,7 +110,7 @@ inputs.nixpkgs.follows = "unstable"; }; - # File System Persistent State Handler + # Filesystem State Handler impermanence.url = "github:nix-community/impermanence"; # System Image Generators @@ -140,6 +140,16 @@ }; }; + # Discord Module + nixcord = { + url = "github:kaylorben/nixcord"; + inputs = { + nixpkgs.follows = "unstable"; + systems.follows = "systems"; + treefmt-nix.follows = "formatter"; + }; + }; + # Windows Apps Wrapper windows = { url = "github:emmanuelrosa/erosanix"; diff --git a/modules/apps/discord.nix b/modules/apps/discord.nix @@ -1,11 +1,10 @@ { config, lib, + inputs, pkgs, - files, ... }: -with files.vesktop; let enable = builtins.elem "discord" config.apps.list; in @@ -13,12 +12,78 @@ in ## Discord Configuration ## config = lib.mkIf enable { environment.systemPackages = [ pkgs.vesktop ]; - user = { persist.directories = [ ".config/vesktop" ]; - homeConfig.home.file = { - ".config/vesktop/settings.json".text = prefs; - ".config/vesktop/settings/settings.json".text = settings; + homeConfig = { + imports = [ inputs.nixcord.homeModules.nixcord ]; + programs.nixcord = { + enable = true; + discord.enable = false; + vesktop = { + enable = true; + package = pkgs.vesktop; + }; + + config = { + useQuickCss = true; # Theming + frameless = false; + transparent = false; + + # Vencord Plugins + plugins = { + betterFolders = { + enable = true; + showFolderIcon = "moreThanOne"; + closeAllHomeButton = true; + }; + betterGifAltText.enable = true; + betterGifPicker.enable = true; + betterRoleContext.enable = true; + betterSessions.enable = true; + betterSettings.enable = true; + biggerStreamPreview.enable = true; + blurNSFW.enable = true; + copyEmojiMarkdown.enable = true; + copyFileContents.enable = true; + copyUserURLs.enable = true; + crashHandler.enable = true; + decor.enable = true; + emoteCloner.enable = true; + favoriteEmojiFirst.enable = true; + favoriteGifSearch.enable = true; + fixImagesQuality.enable = true; + fixSpotifyEmbeds.enable = true; + friendsSince.enable = true; + fullSearchContext.enable = true; + imageZoom.enable = true; + memberCount.enable = true; + mentionAvatars.enable = true; + messageClickActions.enable = true; + messageLinkEmbeds.enable = true; + moreKaomoji.enable = true; + pinDMs.enable = true; + platformIndicators.enable = true; + previewMessage.enable = true; + quickMention.enable = true; + readAllNotificationsButton.enable = true; + relationshipNotifier.enable = true; + replyTimestamp.enable = true; + serverInfo.enable = true; + serverListIndicators.enable = true; + showHiddenChannels.enable = true; + showHiddenThings.enable = true; + showMeYourName.enable = true; + showTimeoutDuration.enable = true; + typingTweaks.enable = true; + validUser.enable = true; + voiceChatDoubleClick.enable = true; + voiceDownload.enable = true; + voiceMessages.enable = true; + webKeybinds.enable = true; + webScreenShareFixes.enable = true; + }; + }; + }; }; }; }; diff --git a/modules/apps/vscode.nix b/modules/apps/vscode.nix @@ -55,32 +55,40 @@ in "editor.fontFamily" = "'${font}', 'monospace', monospace"; }; - # Useful Extensions + ## Editor Extensions extensions = with pkgs.vscode-extensions; [ - aaron-bond.better-comments - divyanshuagrawal.competitive-programming-helper - dotjoshjohnson.xml + aaron-bond.better-comments # Annotations + editorconfig.editorconfig # .editorconfig + esbenp.prettier-vscode # Formatter + file-icons.file-icons # File Icons + naumovs.color-highlight # Color Viewer + + # Git eamodio.gitlens - ecmel.vscode-html-css - editorconfig.editorconfig - esbenp.prettier-vscode - file-icons.file-icons github.vscode-pull-request-github - jgclark.vscode-todo-highlight - jnoortheen.nix-ide - ms-python.python - ms-vscode-remote.remote-ssh - ms-vscode.cpptools - naumovs.color-highlight - redhat.java + + divyanshuagrawal.competitive-programming-helper # CP + jnoortheen.nix-ide # Nix + ms-python.python # Python + ms-vscode.cpptools # C/C++ + redhat.java # Java + rust-lang.rust-analyzer # Rust + tomoki1207.pdf # PDF Viewer + yzhang.markdown-all-in-one # Markdown + + # HTML+CSS+XML + ecmel.vscode-html-css + formulahendry.auto-rename-tag + redhat.vscode-xml + + # JS + dbaeumer.vscode-eslint ritwickdey.liveserver - tomoki1207.pdf - yzhang.markdown-all-in-one ] ++ (with pkgs.code.vscode-marketplace; [ - kisstkondoros.vscode-gutter-preview + kisstkondoros.vscode-gutter-preview # Image Preview ]); }; }; diff --git a/modules/apps/youtube.nix b/modules/apps/youtube.nix @@ -0,0 +1,25 @@ +{ + config, + lib, + pkgs, + ... +}: +let + enable = builtins.elem "youtube" config.apps.list; +in +{ + ## YT Configuration ## + config = lib.mkIf enable { + environment.systemPackages = with pkgs; [ + youtube-music + youtube-tui + yt-dlp + ]; + + user.persist.directories = [ + ".config/YouTube Music" + ".config/youtube-tui" + ".local/share/youtube-tui" + ]; + }; +} diff --git a/modules/gui/desktop/gnome/default.nix b/modules/gui/desktop/gnome/default.nix @@ -265,26 +265,24 @@ in firefoxGnomeTheme.enable = true; }; - home.file = { - # Discord DNOME Theme - ".config/vesktop/settings/quickCss.css" = mkIf (exists "discord") { - text = ''@import url("https://raw.githack.com/GeopJr/DNOME/dist/DNOME.css");''; - }; - - # Logseq Bonofix Theme - ".logseq/config.edn" = mkIf (exists "notes") { - text = ''{:custom-css-url "@import url('https://cdn.jsdelivr.net/gh/sansui233/logseq-bonofix-theme/custom.css');"}''; - }; + # Logseq Bonofix Theme + home.file.".logseq/config.edn" = mkIf (exists "notes") { + text = ''{:custom-css-url "@import url('https://cdn.jsdelivr.net/gh/sansui233/logseq-bonofix-theme/custom.css');"}''; }; - # Code Editor - programs.vscode.profiles.default = mkIf (exists "vscode") { - extensions = [ pkgs.vscode-extensions.piousdeer.adwaita-theme ]; - userSettings = { - "workbench.colorTheme" = "Adwaita Dark"; - "workbench.productIconTheme" = "adwaita"; - "window.titleBarStyle" = "custom"; - "terminal.external.linuxExec" = "ghostty"; + programs = { + # Discord DNOME Theme + nixcord.quickCss = mkIf (exists "discord") ''@import url("https://raw.githack.com/GeopJr/DNOME/dist/DNOME.css");''; + + # Code Editor + vscode.profiles.default = mkIf (exists "vscode") { + extensions = [ pkgs.vscode-extensions.piousdeer.adwaita-theme ]; + userSettings = { + "workbench.colorTheme" = "Adwaita Dark"; + "workbench.productIconTheme" = "adwaita"; + "window.titleBarStyle" = "custom"; + "terminal.external.linuxExec" = "ghostty"; + }; }; }; }; diff --git a/modules/gui/desktop/hyprland/apps/misc.nix b/modules/gui/desktop/hyprland/apps/misc.nix @@ -7,6 +7,7 @@ ... }: let + inherit (lib) mkIf; inherit (builtins) concatStringsSep elem map; exists = app: elem app config.apps.list; in @@ -22,27 +23,27 @@ in thunderbird.enable = true; }; - # Code Editor - programs.vscode.profiles.default = lib.mkIf (exists "vscode") { - extensions = [ pkgs.vscode-extensions.catppuccin.catppuccin-vsc-icons ]; - userSettings = with theme; { - "workbench.iconTheme" = "${name}-${variant}"; - "terminal.external.linuxExec" = "kitty"; + programs = { + # Code Editor + vscode.profiles.default = mkIf (exists "vscode") { + extensions = [ pkgs.vscode-extensions.catppuccin.catppuccin-vsc-icons ]; + userSettings = with theme; { + "workbench.iconTheme" = "${name}-${variant}"; + "terminal.external.linuxExec" = "kitty"; + }; }; - }; - home.file = { # Discord Chat - ".config/vesktop/settings/quickCss.css" = + nixcord.quickCss = with theme; - lib.mkIf (exists "discord") { - text = ''@import url("https://${name}.github.io/discord/dist/${name}-${variant}-${accent}.theme.css");''; - }; + mkIf (exists "discord") ''@import url("https://${name}.github.io/discord/dist/${name}-${variant}-${accent}.theme.css");''; + }; + home.file = { # Logseq Notes ".logseq/config.edn" = with theme; - lib.mkIf (exists "notes") { + mkIf (exists "notes") { text = ''{:custom-css-url "@import url('https://logseq.${name}.com/ctp-${variant}.css');"}''; }; diff --git a/modules/gui/desktop/hyprland/apps/panel.nix b/modules/gui/desktop/hyprland/apps/panel.nix @@ -29,9 +29,9 @@ height = 30; spacing = 3; - margin-top = 3; + margin-top = 2; margin-right = 5; - margin-bottom = 5; + margin-bottom = 1; margin-left = 5; modules-left = [ diff --git a/modules/gui/desktop/hyprland/settings/default.nix b/modules/gui/desktop/hyprland/settings/default.nix @@ -82,6 +82,18 @@ in smart_split = true; }; + # Smart Gaps + workspace = [ + "w[tv1]s[false], gapsout:0, gapsin:0" + "f[1]s[false], gapsout:0, gapsin:0" + ]; + windowrule = [ + "bordersize 0, floating:0, onworkspace:w[tv1]s[false]" + "rounding 0, floating:0, onworkspace:w[tv1]s[false]" + "bordersize 0, floating:0, onworkspace:f[1]s[false]" + "rounding 0, floating:0, onworkspace:f[1]s[false]" + ]; + misc = { disable_autoreload = true; # Disable configuration Polling enable_swallow = true; # Window Swallowing @@ -151,7 +163,6 @@ in }; }; - animations.workspace_wraparound = true; animation = { bezier = [ "accelerate, 0.3, 0, 0.8, 0.15" diff --git a/modules/gui/desktop/hyprland/settings/keybindings.nix b/modules/gui/desktop/hyprland/settings/keybindings.nix @@ -188,6 +188,7 @@ _: { bind = , right, movefocus, r bind = , up, movefocus, u bind = , down, movefocus, d + bind = , Q, killactive, bind = , Return, movetoworkspace, +0 bind = , Return, submap, reset bind = , mouse:272, movetoworkspace, +0 diff --git a/modules/gui/desktop/xfce/default.nix b/modules/gui/desktop/xfce/default.nix @@ -222,24 +222,22 @@ in ## 3rd Party Apps Configuration (mkIf (desktop == "xfce") { user.homeConfig = { - home.file = { - # Discord Nord Theme - ".config/vesktop/settings/quickCss.css" = mkIf (exists "discord") { - text = ''@import url(https://rawcdn.githack.com/orblazer/discord-nordic/f3f6833c70d0b27b1cde986233b7009d61917812/nordic.theme.css);''; - }; - - # Logseq Nord Theme - ".logseq/config.edn" = mkIf (exists "notes") { - text = ''{:custom-css-url "@import url('https://cdn.jsdelivr.net/gh/bad3r/logseq-nord-theme@latest/custom.min.css');"}''; - }; + # Logseq Nord Theme + home.file.".logseq/config.edn" = mkIf (exists "notes") { + text = ''{:custom-css-url "@import url('https://cdn.jsdelivr.net/gh/bad3r/logseq-nord-theme@latest/custom.min.css');"}''; }; - # Code Editor - programs.vscode.profiles.default = mkIf (exists "vscode") { - extensions = [ pkgs.code.vscode-marketplace.alvesvaren.arc-dark ]; - userSettings = { - "workbench.colorTheme" = "Arc Dark Theme"; - "terminal.external.linuxExec" = "xfce4-terminal"; + programs = { + # Discord Nord Theme + nixcord.quickCss = mkIf (exists "discord") ''@import url(https://rawcdn.githack.com/orblazer/discord-nordic/f3f6833c70d0b27b1cde986233b7009d61917812/nordic.theme.css);''; + + # Code Editor + vscode.profiles.default = mkIf (exists "vscode") { + extensions = [ pkgs.code.vscode-marketplace.alvesvaren.arc-dark ]; + userSettings = { + "workbench.colorTheme" = "Arc Dark Theme"; + "terminal.external.linuxExec" = "xfce4-terminal"; + }; }; }; }; diff --git a/scripts/hyprutils.nix b/scripts/hyprutils.nix @@ -22,7 +22,7 @@ let fancy - Toggle Compositor Effects float - Toggle window floating in current workspace minimized - Show minimized windows - monitor - Toggle specified Monitor + monitor 'name' - Toggle specified Monitor service ['name'] - Toggle SystemD Service shader - Toggle Compositor Shader touchpad - Toggle touchpad @@ -303,12 +303,18 @@ recursiveUpdate fi ;; "monitor") - if hyprctl monitors | grep "$3" + if [ -z "$3" ] + then + fail "Expected monitor name" + fi + + if hyprctl monitors | grep "Monitor $3" then hyprctl keyword monitor "$3, disable" else hyprctl keyword monitor "$3, preferred, auto, 1" fi + hyprctl reload ;; "service") if [ -z "$3" ] @@ -365,6 +371,7 @@ recursiveUpdate *) fail "Unexpected Option 'toggle $2'" ;; esac ;; + *) fail "Unexpected Option '$1'" ;; esac ''; } diff --git a/shells/cc.nix b/shells/cc.nix @@ -1,13 +1,12 @@ pkgs: { name = "C"; shellHook = ''echo "## C/C++ Development Shell ##"''; - LIBCLANG_PATH = "${pkgs.llvmPackages.libclang}/lib"; + LIBCLANG_PATH = "${pkgs.libclang}/lib"; packages = with pkgs; [ clang cmake gcc gdb - bear - llvmPackages.libcxx + libcxx ]; } diff --git a/shells/default.nix b/shells/default.nix @@ -16,7 +16,7 @@ mkShell { ] ++ [ figlet - hyfetch + fastfetch ]; shellHook = '' diff --git a/shells/java.nix b/shells/java.nix @@ -1,23 +1,6 @@ pkgs: { name = "Java"; - packages = with pkgs; [ - jdk - nodejs - scala - sbt - yarn - ]; - - shellHook = '' - echo "## Java Development Shell ##" - NPM_DIR="$XDG_DATA_HOME/npm" - mkdir "$NPM_DIR" - echo -e "cache=$XDG_CACHE_HOME/npm\nprefix=$XDG_DATA_HOME/npm" > "$NPM_DIR/config" - export NPM_CONFIG_USERCONFIG="$NPM_DIR/config" - export NPM_CONFIG_CACHE="$XDG_CACHE_HOME/npm" - export NPM_CONFIG_TMP="$XDG_RUNTIME_DIR/npm" - export NPM_CONFIG_PREFIX="$XDG_CACHE_HOME/npm" - export NODE_REPL_HISTORY="$XDG_CACHE_HOME/node/repl_history" - export PATH=$PATH:"$(yarn global bin)" - ''; + shellHook = ''echo "## Java Development Shell ##"''; + packages = [ pkgs.jdk ]; + JAVA_HOME = pkgs.jdk; } diff --git a/shells/js.nix b/shells/js.nix @@ -0,0 +1,11 @@ +pkgs: { + name = "JS"; + shellHook = ''echo "## JavaScript Development Shell ##"''; + packages = with pkgs; [ + nodejs + eslint + + nodemon + postman + ]; +} diff --git a/shells/python.nix b/shells/python.nix @@ -1,31 +1,22 @@ pkgs: { name = "Python"; + shellHook = ''echo "## Python Development Shell ##"''; packages = [ pkgs.python3 (pkgs.python3.withPackages ( p: with p; [ pip - autopep8 - pylint - ipython - poetry-core + poetry setuptools + black + pylint + + ipython matplotlib numpy pandas ] )) ]; - - shellHook = '' - echo "## Python Development Shell ##" - PYTHON_DIR="$XDG_DATA_HOME/python" - export PYTHONSTARTUP="$PYTHON_DIR/pythonrc"; - export PIP_CONFIG_FILE="$PYTHON_DIR/pip/pip.conf"; - export PIP_LOG_FILE="$PYTHON_DIR/pip/log"; - export PYLINTHOME="$PYTHON_DIR/pylint"; - export PYLINTRC="$PYTHON_DIR/pylint/pylintrc"; - export IPYTHONDIR="$PYTHON_DIR/ipython"; - ''; } diff --git a/shells/rust.nix b/shells/rust.nix @@ -1,12 +1,9 @@ pkgs: { name = "Rust"; - packages = with pkgs; [ rustup ]; + shellHook = ''echo "## Rust Development Shell ##"''; + packages = with pkgs; [ + cargo + rustup + ]; RUST_BACKTRACE = 1; - shellHook = '' - echo "## Rust Development Shell ##" - RUST_DIR="$XDG_DATA_HOME/rust" - export RUSTUP_HOME="$RUST_DIR/rustup" - export CARGO_HOME="$RUST_DIR/cargo" - export PATH=$PATH:"$CARGO_HOME/bin" - ''; } diff --git a/shells/sql.nix b/shells/sql.nix @@ -1,19 +1,24 @@ -pkgs: { +pkgs: +let + pkg = pkgs.mariadb; +in +{ name = "SQL"; - buildInputs = [ pkgs.mariadb ]; + buildInputs = [ pkg ]; shellHook = '' - MYSQL_BASEDIR=${pkgs.mariadb} + alias mysql='mysql -u root' MYSQL_HOME=$HOME/.mysql MYSQL_DATADIR=$MYSQL_HOME/data export MYSQL_UNIX_PORT=$MYSQL_HOME/mysql.sock MYSQL_PID_FILE=$MYSQL_HOME/mysql.pid - alias mysql='mysql -u root' - if [ ! -d "$MYSQL_HOME" ]; then - # Make sure to use normal authentication method otherwise we can only - # connect with unix account, but users do not actually exist in NixOS + if [ ! -d "$MYSQL_HOME" ] + then + # Make sure to use normal authentication method + # otherwise we can only connect with unix account + # but users do not actually exist in NixOS mysql_install_db --auth-root-authentication-method=normal \ - --datadir=$MYSQL_DATADIR --basedir=$MYSQL_BASEDIR \ + --datadir=$MYSQL_DATADIR --basedir=${pkg} \ --pid-file=$MYSQL_PID_FILE fi diff --git a/shells/video.nix b/shells/video.nix @@ -8,6 +8,6 @@ pkgs: { handbrake mpv obs-studio - youtube-dl + yt-dlp ]; } diff --git a/site/content/anime.md b/site/content/anime.md @@ -9,7 +9,6 @@ comments = true # Seen -- 100 Kanojo <sup>#</sup> <sup>\*</sup> - 3D Kanojo - 86 <sup>#</sup> <sup>\*</sup> - 100 Kanojo <sup>#</sup> <sup>\*</sup> @@ -78,7 +77,6 @@ comments = true - Masamune's Revenge <sup>#</sup> - Mashle: Magic and Muscles <sup>#</sup> <sup>\*</sup> - My Dress-Up Darling <sup>#</sup> -- My Happy Marriage <sup>#</sup> <sup>\*</sup> - My Senpai is Annoying - Mushoku Tensei <sup>#</sup> <sup>\*</sup> - NieR:Automata Ver1.1a <sup>\*</sup> @@ -125,6 +123,7 @@ comments = true - Uzaki-chan wa Asobitai! <sup>#</sup> <sup>\*</sup> - Violet Evergarden <sup>#</sup> - Vermeil in Gold <sup>\*</sup> +- Watashi no Shiawase na Kekkon <sup>#</sup> <sup>\*</sup> - Weathering With You - When will Ayumu make his Move <sup>\*</sup> - Why Raeliana Ended Up at the Duke's Mansion