dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
commit 7196bfb5cec5eb8eca1ba0183a6a8e9ed98aa55d parent 9d5344dfea9b918967bf89703a1aa1cb924f477b Author: maydayv7 <maydayv7@gmail.com> Date: Tue, 26 Dec 2023 21:40:14 +0530 feat: VS Code Extensions
Diffstat:
| M | README.md | | | 6 | +----- |
| M | files/gnome/dconf/extensions.nix | | | 188 | +++++++++++++++++++++++++++++++++++++++---------------------------------------- |
| M | files/xdg/mime.nix | | | 2 | ++ |
| M | flake.lock | | | 144 | ++++++++++++++++++++++++++++++------------------------------------------------- |
| M | flake.nix | | | 31 | +++++++++++++++++++++++++------ |
| M | modules/apps/vscode.nix | | | 26 | +++++--------------------- |
| M | modules/gui/desktop/gnome.nix | | | 17 | ++++++++++++++++- |
| M | modules/gui/desktop/xfce.nix | | | 9 | +-------- |
| M | modules/gui/theme.nix | | | 3 | ++- |
| M | packages/flake.nix | | | 1 | + |
10 files changed, 201 insertions(+), 226 deletions(-)
diff --git a/README.md b/README.md @@ -611,11 +611,7 @@ You can navigate to the `README`s present in the various directories to know mor - Home Configuration can't be decoupled from System - Lack of automatic script checking - Currently using a workaround for CI due to NixOS/nix#3978 - -#### Manually Managed Packages - -- VS Code Themes and Plugins -- [Wine](./packages/wine) Applications +- [Wine](./packages/wine) Applications have to be manually updated </details> diff --git a/files/gnome/dconf/extensions.nix b/files/gnome/dconf/extensions.nix @@ -43,6 +43,57 @@ in { ]; }; + "org/gnome/shell/extensions/top-bar-organizer" = { + center-box-order = ["dateMenu"]; + left-box-order = [ + "activities" + "guillotine" + "guillotine@fopdoodle.net" + "appMenu" + ]; + + right-box-order = [ + "emoji-copy@felipeftn" + "a11y" + "aggregateMenu" + "drive-menu" + "pano@elhan.io" + "vitalsMenu" + "dwellClick" + "lockkeys" + "keyboard" + "screenSharing" + "screenRecording" + "quickSettings" + ]; + }; + + "org/gnome/shell/extensions/lockkeys".style = "show-hide"; + "org/gnome/shell/extensions/status-area-horizontal-spacing".hpadding = 4; + "org/gnome/shell/extensions/user-theme".name = lib.mkForce "Adwaita"; + + "org/gnome/shell/extensions/fullscreen-avoider" = { + move-hot-corners = true; + move-notifications = true; + }; + + "org/gnome/shell/extensions/window-title-is-back" = { + colored-icon = true; + show-title = false; + }; + + "org/gnome/shell/extensions/quick-settings-avatar" = { + avatar-position = 1; + avatar-realname = false; + avatar-size = 56; + }; + + "org/gnome/shell/extensions/vitals" = { + hot-sensors = ["_default_icon_"]; + show-battery = true; + show-storage = false; + }; + "org/gnome/shell/extensions/altTab-mod" = { current-monitor-only = true; current-monitor-only-window = true; @@ -56,7 +107,7 @@ in { detect-minimized = true; hide-on-new-window = true; show-apps = false; - skip-last-workspace = false; + skip-last-workspace = true; skip-taskbar = true; }; @@ -75,6 +126,31 @@ in { use-keybinding = true; }; + "org/gnome/shell/extensions/shortcuts" = { + maxcolumns = 3; + shortcuts-file = files.gnome.shortcuts; + shortcuts-toggle-overview = ["<Super>slash"]; + use-custom-shortcuts = true; + use-transparency = true; + visibility = 50; + }; + + "org/gnome/shell/extensions/pano" = { + database-location = "${homeDir}/.local/share/clipboard"; + global-shortcut = ["<Super>v"]; + history-length = 250; + incognito-shortcut = ["<Ctrl><Super>v"]; + play-audio-on-copy = false; + send-notification-on-copy = false; + window-position = mkUint32 2; + item-date-font-family = head fonts.sansSerif; + item-date-font-size = 11; + item-title-font-family = head fonts.sansSerif; + item-title-font-size = 20; + search-bar-font-family = head fonts.sansSerif; + search-bar-font-size = 14; + }; + "org/gnome/shell/extensions/forge" = { auto-split-enabled = true; focus-border-toggle = true; @@ -128,73 +204,24 @@ in { workspace-active-tile-toggle = ["<Shift><Super>z"]; }; - "org/gnome/shell/extensions/fullscreen-avoider" = { - move-hot-corners = true; - move-notifications = true; - }; - - "org/gnome/shell/extensions/lockkeys".style = "show-hide"; - - "org/gnome/shell/extensions/pano" = { - database-location = "${homeDir}/.local/share/clipboard"; - global-shortcut = ["<Super>v"]; - history-length = 250; - incognito-shortcut = ["<Ctrl><Super>v"]; - play-audio-on-copy = false; - send-notification-on-copy = false; - window-position = mkUint32 2; - item-date-font-family = head fonts.sansSerif; - item-date-font-size = 11; - item-title-font-family = head fonts.sansSerif; - item-title-font-size = 20; - search-bar-font-family = head fonts.sansSerif; - search-bar-font-size = 14; - }; - - "org/gnome/shell/extensions/quick-settings-avatar" = { - avatar-position = 1; - avatar-realname = false; - avatar-size = 56; - }; - - "org/gnome/shell/extensions/shortcuts" = { - maxcolumns = 3; - shortcuts-file = files.gnome.shortcuts; - shortcuts-toggle-overview = ["<Super>slash"]; - use-custom-shortcuts = true; - use-transparency = true; - visibility = 50; - }; - - "org/gnome/shell/extensions/status-area-horizontal-spacing".hpadding = 4; - - "org/gnome/shell/extensions/top-bar-organizer" = { - center-box-order = ["dateMenu"]; - left-box-order = [ - "activities" - "guillotine" - "guillotine@fopdoodle.net" - "appMenu" - ]; - - right-box-order = [ - "emoji-copy@felipeftn" - "a11y" - "aggregateMenu" - "drive-menu" - "pano@elhan.io" - "vitalsMenu" - "dwellClick" - "lockkeys" - "keyboard" - "screenSharing" - "screenRecording" - "quickSettings" - ]; + "org/gnome/shell/extensions/windowgestures" = { + fn-fullscreen = true; + fn-maximized-snap = true; + fn-move = true; + fn-move-snap = true; + fn-resize = true; + pinch-enable = true; + pinch3-in = 0; + pinch3-out = 0; + pinch4-in = 14; + pinch4-out = 3; + swipe3-down = 1; + swipe4-updown = 22; + taphold-move = true; + three-finger = false; + use-active-window = true; }; - "org/gnome/shell/extensions/user-theme".name = lib.mkForce "Adwaita"; - "org/gnome/shell/extensions/vertical-workspaces" = { aaa-loading-profile = true; always-activate-selected-window = true; @@ -320,34 +347,5 @@ in { ws-thumbnails-position = 5; wst-position-adjust = 0; }; - - "org/gnome/shell/extensions/vitals" = { - hot-sensors = ["_default_icon_"]; - show-battery = true; - show-storage = false; - }; - - "org/gnome/shell/extensions/windowgestures" = { - fn-fullscreen = true; - fn-maximized-snap = true; - fn-move = true; - fn-move-snap = true; - fn-resize = true; - pinch-enable = true; - pinch3-in = 0; - pinch3-out = 0; - pinch4-in = 14; - pinch4-out = 3; - swipe3-down = 1; - swipe4-updown = 22; - taphold-move = true; - three-finger = false; - use-active-window = true; - }; - - "org/gnome/shell/extensions/window-title-is-back" = { - colored-icon = true; - show-title = false; - }; }; } diff --git a/files/xdg/mime.nix b/files/xdg/mime.nix @@ -1,6 +1,8 @@ { audio = [ "audio/aac" + "audio/flac" + "audio/mp3" "audio/mpeg" "audio/ogg" "audio/opus" diff --git a/flake.lock b/flake.lock @@ -134,8 +134,13 @@ "inputs": { "crane": "crane", "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "flake-utils": "flake-utils", + "flake-parts": [ + "framework" + ], + "flake-utils": [ + "utils", + "flake-utils" + ], "nixpkgs": [ "nixpkgs" ], @@ -253,48 +258,25 @@ "type": "github" } }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "boot", - "nixpkgs" - ] - }, + "flake-compat_4": { + "flake": false, "locked": { - "lastModified": 1680392223, - "narHash": "sha256-n3g7QFr85lDODKt250rkZj2IFS3i4/8HBU2yKHO3tqw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "dcc36e45d054d7bb554c9cdab69093debd91a0b5", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, "flake-utils": { "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_4" + "systems": "systems_3" }, "locked": { "lastModified": 1701680307, @@ -404,8 +386,12 @@ }, "generators": { "inputs": { - "nixlib": "nixlib", - "nixpkgs": "nixpkgs_2" + "nixlib": [ + "nixpkgs" + ], + "nixpkgs": [ + "unstable" + ] }, "locked": { "lastModified": 1701689616, @@ -514,21 +500,6 @@ "type": "github" } }, - "nixlib": { - "locked": { - "lastModified": 1693701915, - "narHash": "sha256-waHPLdDYUOHSEtMKKabcKIMhlUOHPOOPQ9UyFeEoovs=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "f5af57d3ef9947a70ac86e42695231ac1ad00c25", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, "nixpkgs": { "locked": { "lastModified": 1702539185, @@ -563,22 +534,6 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1693714546, - "narHash": "sha256-3EMJZeGSZT6pD1eNwI/6Yc0R4rxklNvJ2SDFcsCnjpM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d816b5ab44187a2dd84806630ce77a733724f95f", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { "lastModified": 1702907480, "narHash": "sha256-6uAyxBJbIA8ET9T6ZrbphzLTkEn5HxyxxacykiIQdT8=", "owner": "NixOS", @@ -673,14 +628,15 @@ "home-manager": "home-manager", "impermanence": "impermanence", "index": "index", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "nur": "nur", "proprietary": "proprietary", "sops": "sops", "stylix": "stylix", - "systems": "systems_3", + "systems": "systems_2", "unstable": "unstable", "utils": "utils_2", + "vscode": "vscode", "wfvm": "wfvm", "windows": "windows" } @@ -781,21 +737,6 @@ } }, "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_3": { "flake": false, "locked": { "lastModified": 1, @@ -808,7 +749,7 @@ "type": "path" } }, - "systems_4": { + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -841,7 +782,7 @@ }, "utils": { "inputs": { - "systems": "systems_2" + "systems": "systems" }, "locked": { "lastModified": 1694529238, @@ -859,7 +800,7 @@ }, "utils_2": { "inputs": { - "flake-utils": "flake-utils_2" + "flake-utils": "flake-utils" }, "locked": { "lastModified": 1696331477, @@ -875,6 +816,31 @@ "type": "github" } }, + "vscode": { + "inputs": { + "flake-compat": "flake-compat_3", + "flake-utils": [ + "utils", + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703380950, + "narHash": "sha256-ShXr/nYaz2auifzENt2BOwrMMUTRv4kNw7OmYzpTr4U=", + "owner": "nix-community", + "repo": "nix-vscode-extensions", + "rev": "34c4e14caec3f17f7c4d006044a7e781b961ceec", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-vscode-extensions", + "type": "github" + } + }, "wfvm": { "inputs": { "nixpkgs": [ @@ -897,7 +863,7 @@ }, "windows": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "nixpkgs": [ "unstable" ] diff --git a/flake.nix b/flake.nix @@ -100,21 +100,33 @@ # Secure Boot boot = { url = "github:nix-community/lanzaboote/v0.3.0"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-parts.follows = "framework"; + flake-utils.follows = "utils/flake-utils"; + }; }; # Authentication Credentials Manager sops = { url = "github:Mic92/sops-nix"; - inputs.nixpkgs.follows = "unstable"; - inputs.nixpkgs-stable.follows = "nixpkgs"; + inputs = { + nixpkgs.follows = "unstable"; + nixpkgs-stable.follows = "nixpkgs"; + }; }; # File System Persistent State Handler impermanence.url = "github:nix-community/impermanence"; # System Image Generators - generators.url = "github:nix-community/nixos-generators"; + generators = { + url = "github:nix-community/nixos-generators"; + inputs = { + nixlib.follows = "nixpkgs"; + nixpkgs.follows = "unstable"; + }; + }; # Nix Index Database index = { @@ -134,6 +146,15 @@ # Declarative Flatpak Wrapper flatpak.url = "github:gmodena/nix-flatpak"; + # VS Code Extensions + vscode = { + url = "github:nix-community/nix-vscode-extensions"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-utils.follows = "utils/flake-utils"; + }; + }; + # Windows VM Creator wfvm = { url = "git+https://git.m-labs.hk/M-Labs/wfvm"; @@ -197,7 +218,6 @@ "https://nix-community.cachix.org" "https://nixpkgs-unfree.cachix.org" "https://nix-gaming.cachix.org" - "https://pre-commit-hooks.cachix.org" "https://maydayv7-dotfiles.cachix.org" ]; @@ -207,7 +227,6 @@ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs=" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" - "pre-commit-hooks.cachix.org-1:Pkk3Panw5AW24TOv6kz3PvLhlH8puAsJTBbOPmBo7Rc=" "maydayv7-dotfiles.cachix.org-1:dpECO0Z2ZMttY6JgWHuAR5M7cqeyfFjUsvHdnMz+j6U=" ]; }; diff --git a/modules/apps/vscode.nix b/modules/apps/vscode.nix @@ -51,27 +51,11 @@ in { redhat.vscode-yaml yzhang.markdown-all-in-one ] - # Custom Extensions - ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ - { - name = "better-comments"; - publisher = "aaron-bond"; - version = "3.0.2"; - sha256 = "sha256-hQmA8PWjf2Nd60v5EAuqqD8LIEu7slrNs8luc3ePgZc="; - } - { - name = "org-mode"; - publisher = "vscode-org-mode"; - version = "1.0.0"; - sha256 = "sha256-o9CIjMlYQQVRdtTlOp9BAVjqrfFIhhdvzlyhlcOv5rY="; - } - { - name = "vscode-html-css"; - publisher = "ecmel"; - version = "1.13.1"; - sha256 = "sha256-gBfcizgn+thCqpTa8bubh6S77ynBC/Vpc+7n4XOfqzE="; - } - ]; + ++ (with pkgs.code.vscode-marketplace; [ + aaron-bond.better-comments + ecmel.vscode-html-css + vscode-org-mode.org-mode + ]); }; }; }; diff --git a/modules/gui/desktop/gnome.nix b/modules/gui/desktop/gnome.nix @@ -8,7 +8,7 @@ }: with files; let inherit (config.gui) desktop; - inherit (lib) mkIf mkForce mkMerge; + inherit (lib) gvariant mkIf mkForce mkMerge; exists = app: builtins.elem app config.apps.list; in { ## GNOME Desktop Configuration ## @@ -33,6 +33,21 @@ in { gnome.totem gnome.gnome-music ]; + + # Dconf Settings + programs.dconf.profiles.gdm.databases = [ + { + settings = { + "org/gnome/desktop/peripherals/touchpad" = { + tap-to-click = true; + }; + "org/gnome/desktop/interface" = { + cursor-theme = config.stylix.cursor.name; + cursor-size = gvariant.mkInt32 config.stylix.cursor.size; + }; + }; + } + ]; } ## Full-Fledged GNOME Desktop Configuration diff --git a/modules/gui/desktop/xfce.nix b/modules/gui/desktop/xfce.nix @@ -170,14 +170,7 @@ in { ## 3rd Party Apps Configuration # Code Editor programs.vscode = mkIf (exists "vscode") { - extensions = pkgs.vscode-utils.extensionsFromVscodeMarketplace [ - { - name = "arc-dark"; - publisher = "alvesvaren"; - version = "0.4.0"; - sha256 = "sha256-DM4sY4NsQdlhF+sLLgYuCrNcdmUBRO5c458GpMhF5xg="; - } - ]; + extensions = [pkgs.code.vscode-marketplace.alvesvaren.arc-dark]; userSettings = { "workbench.colorTheme" = "Arc Dark Theme"; "terminal.external.linuxExec" = "xfce4-terminal"; diff --git a/modules/gui/theme.nix b/modules/gui/theme.nix @@ -19,7 +19,8 @@ in { }; ## Base16 Color Theming ## - config = { + config = rec { + environment.systemPackages = [stylix.cursor.package]; stylix = { autoEnable = false; diff --git a/packages/flake.nix b/packages/flake.nix @@ -52,6 +52,7 @@ in { custom = self.packages."${system}"; unstable = import unstable {inherit system;}; + code = vscode.extensions."${system}"; gaming = gaming.packages."${system}"; wine = windows.packages."${system}"; })