dotfiles

My PC Dotfiles & Website
commit a2f0197455f1cd204f4c4edfe78d686018cf580b
parent 70555d2411e6a355f8d5979d038fba65ea8a2239
Author: V7 <maydayv7@gmail.com>
Date:   Wed, 28 May 2025 20:00:02 +0530

feat!: Update to NixOS 25.05 (Warbler)

- Drop XFCE Desktop
- Drop `nixos-generators` -> Refactor install media configuration
- Build system from patched `nixpkgs`
- Abolish versioning
- Flake lock file updates:
• Updated input 'catppuccin':
    'github:catppuccin/nix/2f52f9ead26f80d7b391cedcbb3eb309bd83fff4?narHash=sha256-bFIXz7SvLlSNR4M3vYPYS1CpEN9vTUiH01R4iR/BDmA%3D' (2025-03-31)
  → 'github:catppuccin/nix/0ba11b12be81f0849a89ed17ab635164ea8f0112?narHash=sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c%3D' (2025-05-24)
• Updated input 'formatter':
    'github:numtide/treefmt-nix/29a3d7b768c70addce17af0869f6e2bd8f5be4b7?narHash=sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE%3D' (2025-03-27)
  → 'github:numtide/treefmt-nix/1f3f7b784643d488ba4bf315638b2b0a4c5fb007?narHash=sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8%3D' (2025-05-26)
• Updated input 'framework':
    'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
  → 'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5?narHash=sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY%3D' (2025-04-01)
• Updated input 'gaming':
    'github:fufexan/nix-gaming/8ae51ad90e1c75b8b77102240a02b6dea65fc15a?narHash=sha256-joiviAxX26H0RFIe8E5iP3gSAV/f3v5Ae4SUZ85IDnE%3D' (2025-04-25)
  → 'github:fufexan/nix-gaming/0ec005ba4fe744d1e8f960e8a3c45ae3aeb262c1?narHash=sha256-hB74AiTtPkvnZHKi09AQ/VndCcgllzzpSm4/SGfOPKA%3D' (2025-05-25)
• Updated input 'gaming/nixpkgs':
    'github:NixOS/nixpkgs/ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c?narHash=sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs%3D' (2025-04-17)
  → 'github:NixOS/nixpkgs/fe51d34885f7b5e3e7b59572796e1bcb427eccb1?narHash=sha256-qmmFCrfBwSHoWw7cVK4Aj%2Bfns%2Bc54EBP8cGqp/yK410%3D' (2025-05-22)
• Updated input 'generators':
    'github:nix-community/nixos-generators/42ee229088490e3777ed7d1162cb9e9d8c3dbb11?narHash=sha256-QaMEhcnscfF2MqB7flZr%2BsLJMMYZPnvqO4NYf9B4G38%3D' (2025-03-21)
  → 'github:nix-community/nixos-generators/ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc?narHash=sha256-Obh50J%2BO9jhUM/FgXtI3he/QRNiV9%2BJ53%2Bl%2BRlKSaAk%3D' (2025-05-19)
• Updated input 'hardware':
    'github:NixOS/nixos-hardware/de6fc5551121c59c01e2a3d45b277a6d05077bc4?narHash=sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo%3D' (2025-03-31)
  → 'github:NixOS/nixos-hardware/11f2d9ea49c3e964315215d6baa73a8d42672f06?narHash=sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg%3D' (2025-05-22)
• Updated input 'home':
    'github:nix-community/home-manager/b74b22bb6167e8dff083ec6988c98798bf8954d3?narHash=sha256-qYhUgA98mhq1QK13r9qVY%2BsG1ri6FBgyp%2BGApX6wS20%3D' (2025-04-11)
  → 'github:nix-community/home-manager/83665c39fa688bd6a1f7c43cf7997a70f6a109f9?narHash=sha256-GaBRgxjWO1bAQa8P2%2BFDxG4ANBVhjnSjBms096qQdxo%3D' (2025-05-26)
• Updated input 'hyprcursors':
    'github:VirtCode/hypr-dynamic-cursors/1aabd346eb7ad12a614fd18d095d13422d8b95b4?narHash=sha256-KophdgmuoPO4adpgXxhDBAMQoRRoHjngiFWQxLoGgWY%3D' (2025-05-08)
  → 'github:VirtCode/hypr-dynamic-cursors/761acf0e602e0f6549e5e6c0289a0402e6073489?narHash=sha256-7L2MRMB2ONEh7wlgQzraEoA%2B0o88EOV87KNqZg7vpHA%3D' (2025-05-23)
• Updated input 'hyprdark':
    'github:micha4w/Hypr-DarkWindow/9d541dbd1e96d1dab887d9b6f10cbefd6476d104?narHash=sha256-IFfMnkQZeWuRrMxbIDfVAcbAhWmLqMSno64%2BNnXMIAE%3D' (2025-05-09)
  → 'github:micha4w/Hypr-DarkWindow/c8eb492fb740a50b1251702ba5b02be3dcaf4da2?narHash=sha256-SvL44b6bwmhMojg017RWuPG10iIK2yC1nS0AHfE3jY8%3D' (2025-05-15)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/59b23406804d0c6aa37dc40c271852e697759663?narHash=sha256-/1LO70LYdlECRCX5NuBWZxi7isllo4uJd6QI9vt9PQA%3D' (2025-05-13)
  → 'github:hyprwm/Hyprland/2347050285920925db8bc844e3232bc932eef21e?narHash=sha256-q4Phr64XO/gq//0jwiYkcMXiWmSJ4VE/0Aqx1aE7DHM%3D' (2025-05-25)
• Updated input 'hyprland/aquamarine':
    'github:hyprwm/aquamarine/a19cf76ee1a15c1c12083fa372747ce46387289f?narHash=sha256-jYwzQkv1r7HN/4qrAuKp%2BNR4YYNp2xDrOX5O9YVqkWo%3D' (2025-04-22)
  → 'github:hyprwm/aquamarine/389372c5f4dc1ac0e7645ed29a35fd6d71672ef5?narHash=sha256-PIjVAWghZhr3L0EFM2UObhX84UQxIACbON0IC0zzSKA%3D' (2025-05-21)
• Updated input 'hyprland/hyprlang':
    'github:hyprwm/hyprlang/557241780c179cf7ef224df392f8e67dab6cef83?narHash=sha256-kVQ0bHVtX6baYxRWWIh4u3LNJZb9Zcm2xBeDPOGz5BY%3D' (2025-05-07)
  → 'github:hyprwm/hyprlang/163c83b3db48a17c113729c220a60b94596c9291?narHash=sha256-%2BLAQ81HBwG0lwshHlWe0kfWg4KcChIPpnwtnwqmnoEU%3D' (2025-05-17)
• Updated input 'hyprland/hyprwayland-scanner':
    'github:hyprwm/hyprwayland-scanner/206367a08dc5ac4ba7ad31bdca391d098082e64b?narHash=sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u%2BENJ0Qzwc%3D' (2025-02-18)
  → 'github:hyprwm/hyprwayland-scanner/e511882b9c2e1d7a75d45d8fddd2160daeafcbc3?narHash=sha256-PH9qZqWLHvSBQiUnA0NzAyQA3tu2no2z8kz0ZeHWj4w%3D' (2025-05-18)
• Updated input 'hyprland/pre-commit-hooks':
    'github:cachix/git-hooks.nix/fa466640195d38ec97cf0493d6d6882bc4d14969?narHash=sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS%2BnoCWo%3D' (2025-05-06)
  → 'github:cachix/git-hooks.nix/80479b6ec16fefd9c1db3ea13aeb038c60530f46?narHash=sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo%2BbnXU9D9k%3D' (2025-05-16)
• Updated input 'hyprplugins':
    'github:hyprwm/hyprland-plugins/c491d2831448645f24a1597a17f564aa52691ac6?narHash=sha256-fziL5ORI599D6Wp%2BBKlspxOqZ1HhCCLkq4C4FBwIwJo%3D' (2025-05-09)
  → 'github:hyprwm/hyprland-plugins/a2157f8da740aa7d2909f7e9414f46097d4cd66d?narHash=sha256-fSQLQXzvw6SLYZ6IUjiZhmTm5oSM/A3llOGo8dudWfE%3D' (2025-05-25)
• Updated input 'hyprshell':
    'github:H3rmt/hyprshell-test/01758a6d6384c5ad73a841c3f2e8b90ee9912393?narHash=sha256-te5QuIKrR3BA/7hmdH4L6W3qc8jU8r%2BUU1M7bT/0j0Y%3D' (2025-05-14)
  → 'github:H3rmt/hyprshell-test/7bc398262a5c6e3f252298cd2770ced0de121544?narHash=sha256-pgrzIGUc861nS4BmCFklwUGjm32bdOui10DUtuAGpRU%3D' (2025-05-26)
• Updated input 'hyprspace':
    'github:KZDKM/Hyprspace/82bdb6720ef6163f0b10b49ba49702f0bde815d8?narHash=sha256-qs8I5gBib%2BRLNGYa9om36VivHVrrisJDlZ4EnXNA6OQ%3D' (2025-05-08)
  → 'github:KZDKM/Hyprspace/511d399120bdcafb43e57ca5ff35167c2bba6db8?narHash=sha256-uDhXNURTJgQSpiaCgzqAizbblpcEWEB1WGWEqtCnLLM%3D' (2025-05-18)
• Updated input 'index':
    'github:Mic92/nix-index-database/b3696bfb6c24aa61428839a99e8b40c53ac3a82d?narHash=sha256-LROaIjSLo347cwcHRfSpqzEOa2FoLSeJwU4dOrGm55E%3D' (2025-03-30)
  → 'github:Mic92/nix-index-database/a98adbf54d663395df0b9929f6481d4d80fc8927?narHash=sha256-t9fx0l61WOxtWxXCqlXPWSuG/0XMF9DtE2T7KXgMqJw%3D' (2025-05-25)
• Updated input 'nixcord':
    'github:kaylorben/nixcord/22091416f12f9dc20896fce1a3530ea9c1384828?narHash=sha256-aPfEatxYs%2BWadAbKOZyY/36ykYzaohLXZ8JiWms3DP8%3D' (2025-05-19)
  → 'github:kaylorben/nixcord/c4d7ccc9ae9fc1c46820bdc5b800b4f66e972ccc?narHash=sha256-yBiIy%2Beb0QxYoIOzOY7QyjqXY5PiLgIoNbFtg4SbUH8%3D' (2025-05-25)
• Updated input 'nixpkgs':
    follows 'unstable'
  → follows 'stable'
• Updated input 'sops':
    'github:Mic92/sops-nix/8e873886bbfc32163fe027b8676c75637b7da114?narHash=sha256-Ux/UohNtnM5mn9SFjaHp6IZe2aAnUCzklMluNtV6zFo%3D' (2025-03-30)
  → 'github:Mic92/sops-nix/8d215e1c981be3aa37e47aeabd4e61bb069548fd?narHash=sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD%2B9H%2BWc8o%3D' (2025-05-18)
• Updated input 'spotify':
    'github:Gerg-L/spicetify-nix/567e5b6ee6d7433261f16b400e424a6bd5c8c8b3?narHash=sha256-xiHVIJsxj3tknObHzfKsWHQ0N38zyFsb8edB3oXDOxg%3D' (2025-03-30)
  → 'github:Gerg-L/spicetify-nix/f0595e3b59260457042450749eaec00a5a47db35?narHash=sha256-9IaAQkgyF4PFtVyui8vF6oJah0iVcO9DaOefjdTMthE%3D' (2025-05-25)
• Updated input 'stable':
    'github:NixOS/nixpkgs/7ffe0edc685f14b8c635e3d6591b0bbb97365e6c?narHash=sha256-sOos1jZGKmT6xxPvxGQyPTApOunXvScV4lNjBCXd/CI%3D' (2025-03-30)
  → 'github:NixOS/nixpkgs/7c43f080a7f28b2774f3b3f43234ca11661bf334?narHash=sha256-rqc2RKYTxP3tbjA%2BPB3VMRQNnjesrT0pEofXQTrMsS8%3D' (2025-05-25)
• Updated input 'stylix':
    'github:danth/stylix/711bd28ac96dec8c9187f8db4a297677eef2e654?narHash=sha256-XQXrK7o2c/5VgiyaSbaIeKhtfhSiF5ykppITYzPnXtk%3D' (2025-03-31)
  → 'github:nix-community/stylix/c8e57b9bba85458a376c8c12aafe55ffc6ba2cb1?narHash=sha256-Xs2uQz5HI0o/zsenCcfPz9d0oZij0//Fa1OLAu1zhS8%3D' (2025-05-25)
• Updated input 'stylix/base16':
    'github:SenchoPens/base16.nix/153d52373b0fb2d343592871009a286ec8837aec?narHash=sha256-%2BR1BH5wHhfnycySb7Sy5KbYEaTJZWm1h%2BLW1OtyhiTs%3D' (2024-11-21)
  → 'github:SenchoPens/base16.nix/806a1777a5db2a1ef9d5d6f493ef2381047f2b89?narHash=sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI%3D' (2025-05-06)
• Updated input 'stylix/firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/5a81d390bb64afd4e81221749ec4bffcbeb5fa80?narHash=sha256-RsvHGNTmO2e/eVfgYK7g%2BeYEdwwh7SbZa%2BgZkT24MEA%3D' (2025-03-10)
  → 'github:rafaelmardojai/firefox-gnome-theme/59e3de00f01e5adb851d824cf7911bd90c31083a?narHash=sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4%3D' (2025-04-14)
• Added input 'stylix/flake-parts':
  → follows 'framework'
• Removed input 'stylix/flake-utils'
• Updated input 'stylix/git-hooks':
    'github:cachix/git-hooks.nix/b5a62751225b2f62ff3147d0a334055ebadcd5cc?narHash=sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc%3D' (2025-03-07)
  → 'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82?narHash=sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco%3D' (2025-03-22)
• Updated input 'stylix/gnome-shell':
    'github:GNOME/gnome-shell/dadd58f630eeea41d645ee225a63f719390829dc?narHash=sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg%3D' (2024-11-23)
  → 'github:GNOME/gnome-shell/52c517c8f6c199a1d6f5118fae500ef69ea845ae?narHash=sha256-0RJ4mJzf%2BklKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew%3D' (2025-04-13)
• Updated input 'stylix/nur':
    'github:nix-community/NUR/5479646b2574837f1899da78bdf9a48b75a9fb27?narHash=sha256-emkxnsZstiJWmGACimyAYqIKz2Qz5We5h1oBVDyQjLw%3D' (2025-03-11)
  → 'github:nix-community/NUR/d476cd0972dd6242d76374fcc277e6735715c167?narHash=sha256-/emueQGaoT4vu0QjU9LDOG5roxRSfdY0K2KkxuzazcM%3D' (2025-04-30)
• Updated input 'stylix/nur/flake-parts':
    'github:hercules-ci/flake-parts/205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9?narHash=sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c%3D' (2024-12-04)
  → follows 'stylix/flake-parts'
• Removed input 'stylix/nur/flake-parts/nixpkgs-lib'
• Updated input 'stylix/tinted-kitty':
    'github:tinted-theming/tinted-kitty/eb39e141db14baef052893285df9f266df041ff8?narHash=sha256-2xF3sH7UIwegn%2B2gKzMpFi3pk5DlIlM18%2Bvj17Uf82U%3D' (2024-05-23)
  → 'github:tinted-theming/tinted-kitty/de6f888497f2c6b2279361bfc790f164bfd0f3fa?narHash=sha256-4KtB%2BFiUzIeK/4aHCKce3V9HwRvYaxX%2BF1edUrfgzb8%3D' (2025-01-01)
• Updated input 'stylix/tinted-schemes':
    'github:tinted-theming/schemes/47c8c7726e98069cade5827e5fb2bfee02ce6991?narHash=sha256-YKM1RJbL68Yp2vESBqeZQBjTETXo8mCTTzLZyckCfZk%3D' (2025-03-08)
  → 'github:tinted-theming/schemes/28c26a621123ad4ebd5bbfb34ab39421c0144bdd?narHash=sha256-Fg%2BrdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY%3D' (2025-04-18)
• Updated input 'stylix/tinted-tmux':
    'github:tinted-theming/tinted-tmux/d48ee86394cbe45b112ba23ab63e33656090edb4?narHash=sha256-zWcCXgdC4/owfH/eEXx26y5BLzTrefjtSLFHWVD5KxU%3D' (2025-03-02)
  → 'github:tinted-theming/tinted-tmux/e009f18a01182b63559fb28f1c786eb027c3dee9?narHash=sha256-udV%2BnHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w%3D' (2025-04-20)
• Updated input 'unstable':
    'github:NixOS/nixpkgs/063dece00c5a77e4a0ea24e5e5a5bd75232806f8?narHash=sha256-nEo1t3Q0F%2B0jQ36HJfbJtiRU4OI%2B/0jX/iITURKe3EE%3D' (2025-04-06)
  → 'github:NixOS/nixpkgs/063f43f2dbdef86376cc29ad646c45c46e93234c?narHash=sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o%3D' (2025-05-23)
• Updated input 'vscode':
    'github:nix-community/nix-vscode-extensions/300097f877ee9a0c401a57e7ec731f4edace7117?narHash=sha256-LqcqOUJJcTUgACX2N%2Bi6cqMTZ/b0WAT4WUhwV9JWsZg%3D' (2025-03-31)
  → 'github:nix-community/nix-vscode-extensions/cde730cb9dc2759104d7c8c27cb36d73189be1e2?narHash=sha256-Lvl26mCEatC5akRHywuXkYM6ZKc7R5T9m6u7rBPtNQw%3D' (2025-05-26)
• Updated input 'windows':
    'github:emmanuelrosa/erosanix/6b187805164e2f36a4acddcea5a22118336d9253?narHash=sha256-pDLAW0r9eq9Z6vhJcri0EXn2GU0Z/S0bpusfpaxI5jk%3D' (2025-03-31)
  → 'github:emmanuelrosa/erosanix/c7e09491873662b77b70b6cb187d2265d95ed097?narHash=sha256-co8s0ShA%2Bgydf15g2NZeJWgbdf06hdiYzq6mBbBGcAE%3D' (2025-05-19)

Diffstat:

A.github/workflows/install.yml | 36++++++++++++++++++++++++++++++++++++
D.github/workflows/iso.yml | 36------------------------------------
ACHANGELOG.md | 309+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MREADME.md | 368+++++--------------------------------------------------------------------------
Mchecks/gitlab/pipelines/build.yml | 4++--
Mdevices/README.md | 5++---
Mdevices/flake.nix | 53++++-------------------------------------------------
Mdevices/futura.nix | 2+-
Adevices/install/default.nix | 17+++++++++++++++++
Adevices/install/image.nix | 13+++++++++++++
Ddevices/systems.nix | 3---
Mdevices/valkyrie/drivers.nix | 6++----
Dfiles/colors/arc.yaml | 18------------------
Mfiles/flake.nix | 39++++-----------------------------------
Dfiles/gnome/iso | 9---------
Mfiles/gnome/menu.json | 2+-
Mfiles/gnome/shortcuts.json | 17+++++++++++++----
Dfiles/plank/dock.desktop | 11-----------
Dfiles/plank/dock.theme | 34----------------------------------
Dfiles/plank/launchers/io.elementary.code.dockitem | 2--
Dfiles/plank/launchers/io.elementary.files.dockitem | 2--
Dfiles/plank/launchers/io.elementary.mail.dockitem | 2--
Dfiles/plank/launchers/io.elementary.switchboard.dockitem | 2--
Dfiles/plank/launchers/io.elementary.terminal.dockitem | 2--
Dfiles/xfce/gtk.css | 4----
Dfiles/xfce/panel/docklike-26.rc | 13-------------
Dfiles/xfce/panel/eyes-18.rc | 2--
Dfiles/xfce/panel/windowck-plugin-21.rc | 14--------------
Dfiles/xfce/settings/keyboards.xml | 8--------
Dfiles/xfce/settings/parole.xml | 13-------------
Dfiles/xfce/settings/pointers.xml | 13-------------
Dfiles/xfce/settings/thunar-volman.xml | 13-------------
Dfiles/xfce/settings/thunar.xml | 16----------------
Dfiles/xfce/settings/xfce4-appfinder.xml | 41-----------------------------------------
Dfiles/xfce/settings/xfce4-desktop.xml | 38--------------------------------------
Dfiles/xfce/settings/xfce4-keyboard-shortcuts.xml | 193-------------------------------------------------------------------------------
Dfiles/xfce/settings/xfce4-notifyd.xml | 21---------------------
Dfiles/xfce/settings/xfce4-panel.xml | 224-------------------------------------------------------------------------------
Dfiles/xfce/settings/xfce4-power-manager.xml | 30------------------------------
Dfiles/xfce/settings/xfce4-screensaver.xml | 7-------
Dfiles/xfce/settings/xfce4-session.xml | 32--------------------------------
Dfiles/xfce/settings/xfce4-terminal.xml | 50--------------------------------------------------
Dfiles/xfce/settings/xfwm4.xml | 91-------------------------------------------------------------------------------
Dfiles/xfce/settings/xsettings.xml | 47-----------------------------------------------
Mflake.lock | 273+++++++++++++++++++++++++++++++++----------------------------------------------
Mflake.nix | 20+++++---------------
Mmodules/README.md | 6+-----
Mmodules/apps/notes.nix | 2+-
Mmodules/apps/office.nix | 3++-
Mmodules/apps/vscode.nix | 3+--
Mmodules/base/console.nix | 2+-
Mmodules/base/default.nix | 4++--
Mmodules/base/firmware.nix | 1+
Mmodules/configuration.nix | 34+++++-----------------------------
Mmodules/gui/default.nix | 50+++++++++++++++++++++++---------------------------
Amodules/gui/desktop/gnome/common.nix | 44++++++++++++++++++++++++++++++++++++++++++++
Mmodules/gui/desktop/gnome/default.nix | 197+++++++++++++++++++++++++++++--------------------------------------------------
Dmodules/gui/desktop/gnome/iso.nix | 43-------------------------------------------
Mmodules/gui/desktop/gnome/settings/apps.nix | 14+++++++++++++-
Mmodules/gui/desktop/gnome/settings/extensions.nix | 16++++++++++------
Mmodules/gui/desktop/hyprland/apps/launcher.nix | 25++++++++++---------------
Mmodules/gui/desktop/hyprland/apps/settings.nix | 1-
Mmodules/gui/desktop/hyprland/apps/terminal.nix | 9+--------
Mmodules/gui/desktop/hyprland/apps/utilities.nix | 1-
Mmodules/gui/desktop/hyprland/default.nix | 7+------
Amodules/gui/desktop/install.nix | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dmodules/gui/desktop/iso.nix | 4----
Mmodules/gui/desktop/pantheon/default.nix | 89+++++++++++++++++++++++++++++++++++++++----------------------------------------
Mmodules/gui/desktop/pantheon/settings.nix | 125++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Dmodules/gui/desktop/xfce/compositor.nix | 151------------------------------------------------------------------------------
Dmodules/gui/desktop/xfce/default.nix | 246-------------------------------------------------------------------------------
Dmodules/gui/desktop/xfce/iso.nix | 20--------------------
Mmodules/gui/theme.nix | 3+--
Dmodules/gui/wayland.nix | 24------------------------
Dmodules/gui/xorg.nix | 43-------------------------------------------
Mmodules/hardware/mobile.nix | 2+-
Mmodules/hardware/virtualisation/android.nix | 12+-----------
Mmodules/hardware/virtualisation/default.nix | 2+-
Mmodules/shell/default.nix | 3+--
Mmodules/shell/prompt.nix | 9++++-----
Mpackages/flake.nix | 81+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Dpackages/gnome-pano/default.nix | 49-------------------------------------------------
Dpackages/gnome-pano/imports.patch | 20--------------------
Apackages/patches/391574.patch | 46++++++++++++++++++++++++++++++++++++++++++++++
Dpackages/patches/darkly.patch | 101-------------------------------------------------------------------------------
Mscripts/nixos.nix | 24+++++++++++-------------
Mshells/python.nix | 2+-
87 files changed, 1042 insertions(+), 2716 deletions(-)

diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml @@ -0,0 +1,36 @@ +name: "ci: Build Install Media image" +on: + workflow_dispatch: + schedule: + - cron: "0 0 1 * *" + push: + tags: + - "*" +env: + NIX_SHOW_STATS: 1 +jobs: + image: + runs-on: ubuntu-latest + steps: + - name: Clone Repo + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + fetch-depth: 0 + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + extra_nix_config: | + experimental-features = nix-command flakes + accept-flake-config = true + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + - name: Build Default Install Media + run: nix build .#nixosConfigurations.install.config.system.build.images.iso -L --show-trace + - name: Upload ISO Image + uses: actions/upload-artifact@v4 + id: image-upload + with: + name: Image + path: result/iso/install.iso + compression-level: 0 + if-no-files-found: error diff --git a/.github/workflows/iso.yml b/.github/workflows/iso.yml @@ -1,36 +0,0 @@ -name: "ci: Build default `installMedia`" -on: - workflow_dispatch: - schedule: - - cron: "0 0 1 * *" - push: - tags: - - "*" -env: - NIX_SHOW_STATS: 1 -jobs: - image: - runs-on: ubuntu-latest - steps: - - name: Clone Repo - uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - fetch-depth: 0 - - name: Install Nix - uses: cachix/install-nix-action@v31 - with: - extra_nix_config: | - experimental-features = nix-command flakes - accept-flake-config = true - access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} - - name: Build Default Install Media - run: nix build .#installMedia.default.config.system.build.isoImage -L --show-trace - - name: Upload ISO Image - uses: actions/upload-artifact@v4 - id: image-upload - with: - name: Image - path: result/iso/nixos.iso - compression-level: 0 - if-no-files-found: error diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -0,0 +1,309 @@ +## 2025 + +### May + +- Update to NixOS 25.05 (Warbler) + - Drop XFCE Desktop + - Drop `nixos-generators` -> Refactor install media configuration + - Build system from patched `nixpkgs` +- Abolish versioning + +--- + +### v25.5 + +- Remove package `channels` +- Update Hyprland to v0.49 + - Use `hyprshell` to switch between windows + - Use `pcmanfm-qt` to render desktop icons + - Use animations from [end4](https://github.com/end-4/dots-hyprland) + - New `pyprland` scratchpads +- Update Shell Configuration + - Use `fastfetch` + - Use [`starship`](https://starship.rs/) shell prompt theme +- Improve QT Theming +- Add `apps.games` +- Drop ULauncher Configuration (`gui.launcher`) + +### v25 + +- Upgrade to NixOS v24.11 (Vicuna)! +- Add Logseq Configuration +- Use Vesktop instead of Discord +- Hyprland Improvements + - Transition to UWSM + - Use `nixpkgs` version + - Use [`nemo`](https://community.linuxmint.com/software/view/nemo) File Manager + - Add KDE Connect Support +- GNOME Changes + - Drop PaperWM for Tiling Shell + - Drop Blackbox for Ghostty +- Add Steam Support +- Update Wine Packages +- Improve Website +- Fix Python Shell + +### v24.5 + +- GNOME Improvements + - Use [PaperWM](https://github.com/paperwm/PaperWM) and [Pano](https://github.com/oae/gnome-shell-pano) + - Remove unneeded extensions +- Add Looking Glass to VFIO Configuration +- Remove needless `wfvm` Configuration +- Refine Specialisations + +### v24 + +- Hyprland Improvements + - Update to version 0.40 + - Desktop Icons + - Keybindings List + - Useful Submaps + - Panel Improvements + - Border Gradients + - Revamp `hyprutils` Script + - Compositor Shaders + - Use [`clipse`](https://github.com/savedra1/clipse) for Clipboard + - Use amazing plugins + - [Hycov](https://github.com/DreamMaoMao/hycov) + - [Hyprspace](https://github.com/KZDKM/Hyprspace) + - [Hyprexpo](https://github.com/hyprwm/hyprland-plugins/tree/main/hyprexpo) +- Add device `valkyrie` and fix NVIDIA issues +- Improve GNOME Configuration + - Use [`tiling-shell`](https://github.com/domferr/tilingshell) instead of `forge` + - Support NVIDIA GPUs and PRIME +- Add `devcontainer` for Github Codespaces +- Add configuration for Spotify using [`spicetify-nix`](https://github.com/Gerg-L/spicetify-nix) +- Make VS Code Configuration mutable using [this](https://gist.github.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa) module +- Reimplement support for specifying Package Channel for configuration build +- Refactor Install Media build and upload image as Github artifact to circumvent size limit + +### v17 + +- Re-expose `lib.build.device` +- Add Hyprland Configuration +- Refactor GNOME `dconf` +- Overhaul XFCE Configuration + - Use ULauncher + - Use the Picom Compositor +- Add Pantheon Desktop Configuration +- Add VS Code Extensions Repository +- Fix Android Virtualisation +- Support running AppImages +- Add multiple `gui` Modules +- Refactor and add `hardware.cpu` +- Add `sql` Shell +- Actually persist `~/.local/share/Trash` + +### v15 + +- Use the [`flake-parts`](https://flake.parts/) Flakes framework +- Improve Syntax Formatting with `treefmt-nix` and drop `pre-commit-hooks` +- Support declarative [Flatpak](https://flatpak.org/) application install +- Update Nix to version 2.19 +- Enable Security & Hardening settings by default +- Add Boot Recovery Settings +- Support Secure Boot using [`lanzaboote`](https://github.com/nix-community/lanzaboote) +- Allow patching Default Package Channel +- Show package delta using [`nvd`](https://gitlab.com/khumba/nvd) +- Upgrade to GNOME 45 + - Update Extensions +- Fix Emoji Support +- Drop `.templates` +- Multiple Refactors + - Separate `games` and `laptop` module + - Separate `install` Script + - Stop exposing `nixosModules` + - Fix `user.homeConfig` + +### v13 + +- Follow NixOS Unstable +- Improve `nix-index` +- Move out proprietary files +- Refactor Secrets +- Drop `deploy-rs` Support +- Remove `inputs` patching Support +- Fix first boot installation +- Add conditional to `lib.map.files` +- Add `gui.{wallpaper,wayland}` + +### 23.05 (v12) + +- Upgrade to NixOS v23.05 (Stoat)! +- Drop `cod`, `nix-linter`, `gedit`, `touchegg`, `vscode-server` and `mutter-rounded` +- Support Android Virtualisation using Waydroid +- Drop `compat` Libraries +- Refactor GNOME Experience + - Use `blackbox` as default terminal + - Use [`forge`](https://github.com/forge-ext/forge) for tiling + - Add keyboard shortcuts window using [`shortcuts`](https://gitlab.com/paddatrapper/shortcuts-gnome-extension) +- Improve XFCE Configuration and Handling +- Improve Automatic Package Update Script +- Enable ZFS encryption +- Support Network Printing + +### 22.11 (v11) + +- Upgrade to NixOS v22.05 (Quokka)! +- Add `lib.map.array` +- Improve `nixos` Script +- Add `gui.fonts.usershare` +- General Maintenance Updates +- Use [`treefmt`](https://github.com/numtide/treefmt) for Formatting Code + +### 22.04 (v10) + +- Deprecate `git-crypt` Usage +- Improve Installation Experience +- Begin Work on Blog +- Stabilize with multiple Bug-Fixes + +<details> +<summary><i>Archive</i></summary> + +### v7.0 + +- Create Website using [Zola](https://www.getzola.org/) +- Refine Compatibility Libraries +- Refine Scripts + - Use `nix-shell` Shebangs + - Add `lib.build.script` +- Support Visual Studio Code Editor +- Use [`alejandra`](https://github.com/kamadorueda/alejandra) for formatting code + +### v5.0 + +- Improve `channels` Usage +- Support `source` Filters +- Refine `git` Configuration +- Use `wine` Application Wrapper +- Use System Independent `library` +- Add Support for Ephemeral `/home` +- Add Configuration for [XFCE](https://xfce.org/) Desktop +- Bifurcate `users` and Refine User Configuration +- Support Automatic `packages` Updates using `update.sh` +- Add Support for Automatic Deployments using [`deploy-rs`](https://github.com/serokell/deploy-rs) +- Add Developer `shells` for Multiple Programming Languages integrated with [`lorri`](https://github.com/nix-community/lorri) + +### v4.5 + +- Use Calendar Versioning +- Use `nixConfig` +- Support Auto-Upgrade +- Support Multiple Users per Device +- Improve Security and Harden System +- Use PipeWire (with low-latency) for audio +- Use [`nixos-generators`](https://github.com/nix-community/nixos-generators) for Image Generation + +### v4.0 + +- Use `nixConfig` +- Bifurcate `devices` + - Refactor `lib.build.system` into `build.iso` and `build.device` +- Improve `lib` Handling +- Improve Module Imports +- Improve and Bifurcate `docs` +- Handle `scripts` as packages +- Improve configuration `checks` +- Achieve `system` Independence +- Add `.editorconfig` and `nanorc` +- Refactor `sops` Encrypted Secrets +- Stabilise and document `templates` +- Fix `devshells`, `repl` and `scripts` +- Fix Module Imports and `inputs` Patching +- Improve Mime Types Handling with `lib.xdg` +- Use `advanced` Ephemeral Root File System Layout with [ZFS](https://zfsonlinux.org/) +- Use [`flake-compat`](https://github.com/edolstra/flake-compat), [`nix-gaming`](https://github.com/fufexan/nix-gaming) and [`nix-wayland`](https://github.com/nix-community/nix-wayland) +- Improve Code Consistency, reduce Complexity and fix Syntactic and Semantic Errors + + - Use [`pre-commit-hooks`](https://github.com/cachix/pre-commit-hooks.nix) to improve configuration `checks` + - Use [`nixfmt`](https://github.com/serokell/nixfmt) for formatting code + - Use [`nix-linter`](https://github.com/Synthetica9/nix-linter) to check stylistic errors + +### v3.0 + +- Upgrade to NixOS v21.11 (Porcupine)! +- Improve Package Declaration +- Add Support for Instant Nix REPL +- Add Support for patching `inputs` +- Improve usage of Developer Shells +- Import Modules using `nixosModules` +- Use [`home-manager`](https://github.com/nix-community/home-manager) as a Module +- Merge Device and User Configuration +- Move all program configuration and dotfiles to `files` +- Use [`sops-nix`](https://github.com/Mic92/sops-nix) at `secrets` for managing authentication credentials +- Automatically map `modules`, `packages`, `overlays`, `shells` and `inputs` + +### v2.3 + +- Add `docs` directory +- Fix `.iso` Boot and Install Errors +- Improve Scripts with error-checking +- Add `direnv` support at `shells` +- Add Support for Nix Developer Shells at `shells` +- Use `secrets` as an `input` rather than as a `submodule` +- Improve CI with automatic `flake.lock` update and dependency-checking +- Bifurcate Flake `outputs` (as `configuration.nix`), `scripts` and `overlays` + +### v2.1 + +- Simplify Installation + - Add `install` Script + - Add Support for creating Install Media + - Add overhauled `setup` Script + - Automatically build `.iso` and publish release using CI +- Fix Home Activation + +### v2.0 + +- Add BTRFS (opt-in state) Configuration +- Improve Ephemeral Root Support with [impermanence](https://github.com/nix-community/impermanence) +- Improve Installation Experience +- Improve Home Activation +- Bifurcate Modules and Roles +- Reduce CI Time +- Add the Office role + +### v1.0 + +- Add Cachix Support +- Add Nix Shell Support +- Increase Readability +- Improve Package Management +- Under the hood CI changes + +### v0.7 + +- Improve Secrets Management using Private Submodule at `secrets` +- Overhaul Package Overrides + - Use `final: prev:` instead of `self: super:` + - Add support for NUR + - Split System Scripts and import as overlay + - Refactor Package Overrides into `packages` +- Add archived `dotfiles` and revitalize existing ones +- Improve Modulated Imports +- Improve Fonts Management +- Update README and `scripts` + +### v0.5 + +- Added Support for Nix Flakes +- Added Custom Libraries for Device and User Management +- Created System Management Script +- Updated README and `install` Script +- Add full support for Multi-Device Configuration +- Use Better Repository Management + +### v0.1 + +- Added basic NixOS system configuration using GNOME and GTK+ +- Added hardware support for 2 devices +- Added `setup` script +- Added `home-manager` support and user dotfiles +- Added Modulated Configuration +- Added Support for Nix User Repository +- Added Repository Pinning +- Added Essential Package Overlays +- Added Basic Password Management +- Added README diff --git a/README.md b/README.md @@ -4,7 +4,7 @@ <img alt="Logo" src="files/images/logo/dark.png"> </picture> -![Version](https://img.shields.io/github/v/release/maydayv7/dotfiles?include_prereleases&label=version&style=flat-square&logo=github) ![License](https://img.shields.io/github/license/maydayv7/dotfiles?color=dgreen&style=flat-square) ![Size](https://img.shields.io/github/repo-size/maydayv7/dotfiles?color=red&label=size&style=flat-square) [![NixOS](https://img.shields.io/badge/NixOS-24.11-9cf.svg?style=flat-square&logo=NixOS&logoColor=white)](https://nixos.org) +![License](https://img.shields.io/github/license/maydayv7/dotfiles?color=dgreen&style=flat-square) ![Size](https://img.shields.io/github/repo-size/maydayv7/dotfiles?color=red&label=size&style=flat-square) [![NixOS](https://img.shields.io/badge/NixOS-25.05-9cf.svg?style=flat-square&logo=NixOS&logoColor=white)](https://nixos.org) This [repository](https://github.com/maydayv7/dotfiles) contains the configuration and `dotfiles` for my continuously evolving multi-PC setup (using [Nix](https://nixos.org/)). All the devices I own, controlled by code. It also builds and deploys my website to [maydayv7.site](https://maydayv7.site). You can follow along with my [NixOS Desktop](https://maydayv7.site/series/nixos-desktop/) Series @@ -21,10 +21,6 @@ This [repository](https://github.com/maydayv7/dotfiles) contains the configurati | :------------------------------------------------: | | _GNOME Desktop_ | -| [![XFCE Desktop](./files/images/desktop/xfce.jpg)](https://www.reddit.com/r/unixporn/comments/19efxry/xfce_functional_and_beautiful/) | -| :-----------------------------------------------------------------------------------------------------------------------------------: | -| _XFCE Desktop_ | - | ![Pantheon Desktop](./files/images/desktop/pantheon.jpg) | | :------------------------------------------------------: | | _Pantheon Desktop_ | @@ -43,12 +39,6 @@ This [repository](https://github.com/maydayv7/dotfiles) contains the configurati - VS Code [Adwaita Theme](https://github.com/piousdeer/vscode-adwaita): Integrates Visual Studio Code with GNOME Desktop - Discord [DNOME](https://github.com/GeopJr/DNOME) Theme: Discord Theme inspired by Adwaita, designed to integrate Discord with GNOME -- [Arc Theme](https://github.com/jnsh/arc-theme): Flat GTK theme with transparent elements for various desktop shells, window managers and applications -- [Arc KDE Theme](https://github.com/PapirusDevelopmentTeam/arc-kde): Port of the Arc GTK Theme for Plasma Desktop -- VS Code [Arc Theme](https://github.com/alvesvaren/arc-dark-vscode): Port of the Arc Dark GTK Theme for Visual Studio Code -- Discord [Nordic](https://github.com/orblazer/discord-nordic) Theme: Discord Theme using the [Nord](<(https://www.nordtheme.com/)>) color palette -- Logseg [Nord Theme](https://github.com/Bad3r/Logseq-Nord-Theme): Logseq in an arctic, north-bluish color palette - - Firefox [Elementary Theme](https://github.com/Zonnev/elementaryos-firefox-theme): Elementary OS Theme for the Mozilla Firefox Browser, used for better desktop integration - VS Code [Elementary Theme](https://github.com/sixpounder/vscode-elementary-theme): Integrates Visual Studio Code with Pantheon Desktop - Logseq [Bonofix Theme](https://github.com/Sansui233/logseq-bonofix-theme): A clean Logseq theme with focus on long-time writing experience @@ -58,6 +48,10 @@ This [repository](https://github.com/maydayv7/dotfiles) contains the configurati <details> <summary><i>Older...</i></summary> +| [![XFCE Desktop](./files/images/desktop/xfce.jpg)](https://www.reddit.com/r/unixporn/comments/19efxry/xfce_functional_and_beautiful/) | +| :-----------------------------------------------------------------------------------------------------------------------------------: | +| _XFCE Desktop_ | + | ![GNOME 45](./files/images/desktop/old/gnome_45.jpg) | | :--------------------------------------------------: | | _GNOME 45_ | @@ -96,7 +90,6 @@ This [repository](https://github.com/maydayv7/dotfiles) contains the configurati - Support for Secure Boot using [`lanzaboote`](https://github.com/nix-community/lanzaboote) - Support for Multiple Programming Language Development [`shells`](./shells) integrated with [`direnv`](https://direnv.net/) and [`lorri`](https://github.com/nix-community/lorri) - Automatic `packages` Updates using [`update.sh`](./packages/update.sh) -- Install Media and Device Images using [`nixos-generators`](https://github.com/nix-community/nixos-generators) image generation modules - Syntax [Formatting](./modules/nix/format.nix) using [`treefmt`](https://github.com/numtide/treefmt) and [`treefmt-nix`](https://github.com/numtide/treefmt-nix) - Support for `source` filters with [`nix-filter`](https://github.com/numtide/nix-filter) - Support for Base16 color theming using [`stylix`](https://github.com/danth/stylix) @@ -107,14 +100,13 @@ This [repository](https://github.com/maydayv7/dotfiles) contains the configurati ## Programs -| Type | Programs | -| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------: | -| Editors | [`nano`](https://www.nano-editor.org/), [`micro`](https://micro-editor.github.io), [VS Code](https://code.visualstudio.com/) | -| Shells | [`bash`](https://www.gnu.org/software/bash/), [`zsh`](https://www.zsh.org) | -| Terminal | [Ghostty](https://ghostty.org/), [`xfce4` Terminal](https://docs.xfce.org/apps/terminal/start), [Kitty](https://sw.kovidgoyal.net/kitty/) | -| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/) | -| Desktop Environments | [GNOME](https://www.gnome.org), [XFCE](https://xfce.org/), [Pantheon](https://elementary.io/) | -| Compositors | [Hyprland](https://hyprland.org/), [Picom](https://github.com/yshui/picom) | +| Type | Programs | +| :------- | :--------------------------------------------------------------------------------------------------------------------------: | +| Editors | [`nano`](https://www.nano-editor.org/), [`micro`](https://micro-editor.github.io), [VS Code](https://code.visualstudio.com/) | +| Shells | [`bash`](https://www.gnu.org/software/bash/), [`zsh`](https://www.zsh.org) | +| Terminal | [Ghostty](https://ghostty.org/), [Kitty](https://sw.kovidgoyal.net/kitty/) | +| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/) | +| Desktops | [GNOME](https://www.gnome.org), [Hyprland](https://hyprland.org/), [Pantheon](https://elementary.io/) | ## Structure @@ -133,8 +125,7 @@ github:maydayv7/dotfiles │ └───nixos: app ├───checks │ └───x86_64-linux -│ ├───Device-gnome: derivation 'nixos-rebuild' -│ ├───Device-xfce: derivation 'nixos-rebuild' +│ ├───Device-iso: derivation 'nixos-rebuild' │ └───treefmt: derivation 'treefmt-check' ├───devShells │ └───x86_64-linux @@ -151,7 +142,6 @@ github:maydayv7/dotfiles ├───files: 'dotfiles' and program configuration ├───formatter │ └───x86_64-linux: package 'treefmt' -├───installMedia: device install media ├───legacyPackages │ └───x86_64-linux (Default package channel) ├───lib: utility library functions @@ -165,6 +155,7 @@ github:maydayv7/dotfiles │ ├───install: package 'os-install' │ ├───nixos: package 'nixos' │ └───website: package 'website-stable' +├───patchedPkgs: patched package source ├───systems: supported architectures └───templates └───default: template: My NixOS Configuration @@ -178,7 +169,6 @@ github:maydayv7/dotfiles ├── files ├── site ├── devices -│ ├── systems.nix │ └── vm ├── users │ └── passwords @@ -211,7 +201,6 @@ github:maydayv7/dotfiles - [`files`](./files/README.md): `dotfiles` and program configuration - [`site`](./site/README.md): personal website generated using [`zola`](https://www.getzola.org/) - [`devices`](./devices/README.md): system configuration for various devices -- `systems.nix`: list of supported system architectures - [`vm`](./devices/vm/README.md): declarative configuration to build multiple virtual machines - [`users`](./users/README.md): individual user-specific configuration - [`secrets`](./secrets/README.md): authentication credentials management using [`sops-nix`](https://github.com/Mic92/sops-nix) @@ -343,23 +332,21 @@ Example `flake.nix`: <details> <summary><b>From Scratch</b></summary> -Download the latest install media image from the [Releases](../../releases/latest) page and burn it to a USB using a flashing utility such as [Etcher](https://www.balena.io/etcher/) - > [!IMPORTANT] > These instructions are mainly intended for personal use +To download the Install Media, click on the latest successsful run listed [here](../../actions/workflows/installer.yml) and download the image artifact. Burn it to a USB using a flashing utility such as [Etcher](https://www.balena.io/etcher/) + > [!TIP] > In order to directly use the configuration, you must first create a clone of this repository and follow steps 2 to 6 from the first section, and preferably create your own install media <details> -<summary><i>Additional Install Media</i></summary> +<summary><i>Build</i></summary> +If Nix is already installed on your system, you may run the following command to build the Install Media image: -If Nix is already installed on your system, you may run the following command to build the Install Media: -_Replace_ **_VARIANT_** _with the name of Install Media to create_ +<pre><code>nix build github:maydayv7/dotfiles#nixosConfigurations.install.config.system.build.images.iso</code></pre> -<pre><code>nix build github:maydayv7/dotfiles#installMedia.<b><i>VARIANT</i></b>.config.system.build.isoImage</code></pre> - -You can also download the NixOS `.iso` from [here](https://nixos.org/download.html) and run the `install` script using the following command: +To build and run the `install` script, use the following commands: ``` nix build github:maydayv7/dotfiles#install @@ -369,7 +356,7 @@ sudo ./result/bin/os-install If you want to create an `.iso` image of the entire system, run the following command: _Replace_ **_DEVICE_** _with the name of Device to build_ -<pre><code>nix build github:maydayv7/dotfiles#nixosConfigurations.<b><i>DEVICE</i></b>.config.formats.iso</code></pre> +<pre><code>nix build github:maydayv7/dotfiles#nixosConfigurations.<b><i>DEVICE</i></b>.config.system.build.images.iso</code></pre> </details> @@ -429,10 +416,6 @@ See [this](./modules/hardware/README.md) for additional information While rebuilding system with Flakes, make sure that any file with unstaged changes will not be included. Use `git add .` in cases where the `git` tree is dirty -#### Branches - -There are two branches, [`stable`](../../tree/stable) and [`develop`](../../tree/develop) (when required). The `stable` branch consists of configuration that builds without failure, and the `develop` branch is a bleeding-edge testbed - #### Cache The system build cache is publicly hosted using [Cachix](https://www.cachix.org) at [maydayv7-dotfiles](https://app.cachix.org/cache/maydayv7-dotfiles), and can be used while building the system to prevent rebuilding from scratch @@ -502,325 +485,20 @@ _Thanks a lot! ;)_ - [tejing1](https://github.com/tejing1/nixos-config) - [vlaci](https://github.com/vlaci/nixos-config) - [wiltaylor](https://github.com/wiltaylor/dotfiles) + - [wimpysworld](https://github.com/wimpysworld/nix-config) --- <details> -<summary><b>Changelog</b></summary> - -### v25.5 - -- Remove package `channels` -- Update Hyprland to v0.49 - - Use `hyprshell` to switch between windows - - Use `pcmanfm-qt` to render desktop icons - - Use animations from [end4](https://github.com/end-4/dots-hyprland) - - New `pyprland` scratchpads -- Update Shell Configuration - - Use `fastfetch` - - Use [`starship`](https://starship.rs/) shell prompt theme -- Improve QT Theming -- Add `apps.games` -- Drop ULauncher Configuration (`gui.launcher`) - -### v25 - -- Upgrade to NixOS v24.11 (Vicuna)! -- Add Logseq Configuration -- Use Vesktop instead of Discord -- Hyprland Improvements - - Transition to UWSM - - Use `nixpkgs` version - - Use [`nemo`](https://community.linuxmint.com/software/view/nemo) File Manager - - Add KDE Connect Support -- GNOME Changes - - Drop PaperWM for Tiling Shell - - Drop Blackbox for Ghostty -- Add Steam Support -- Update Wine Packages -- Improve Website -- Fix Python Shell - -### v24.5 - -- GNOME Improvements - - Use [PaperWM](https://github.com/paperwm/PaperWM) and [Pano](https://github.com/oae/gnome-shell-pano) - - Remove unneeded extensions -- Add Looking Glass to VFIO Configuration -- Remove needless `wfvm` Configuration -- Refine Specialisations - -### v24 - -- Hyprland Improvements - - Update to version 0.40 - - Desktop Icons - - Keybindings List - - Useful Submaps - - Panel Improvements - - Border Gradients - - Revamp `hyprutils` Script - - Compositor Shaders - - Use [`clipse`](https://github.com/savedra1/clipse) for Clipboard - - Use amazing plugins - - [Hycov](https://github.com/DreamMaoMao/hycov) - - [Hyprspace](https://github.com/KZDKM/Hyprspace) - - [Hyprexpo](https://github.com/hyprwm/hyprland-plugins/tree/main/hyprexpo) -- Add device `valkyrie` and fix NVIDIA issues -- Improve GNOME Configuration - - Use [`tiling-shell`](https://github.com/domferr/tilingshell) instead of `forge` - - Support NVIDIA GPUs and PRIME -- Add `devcontainer` for Github Codespaces -- Add configuration for Spotify using [`spicetify-nix`](https://github.com/Gerg-L/spicetify-nix) -- Make VS Code Configuration mutable using [this](https://gist.github.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa) module -- Reimplement support for specifying Package Channel for configuration build -- Refactor Install Media build and upload image as Github artifact to circumvent size limit - -### v17 - -- Re-expose `lib.build.device` -- Add Hyprland Configuration -- Refactor GNOME `dconf` -- Overhaul XFCE Configuration - - Use ULauncher - - Use the Picom Compositor -- Add Pantheon Desktop Configuration -- Add VS Code Extensions Repository -- Fix Android Virtualisation -- Support running AppImages -- Add multiple `gui` Modules -- Refactor and add `hardware.cpu` -- Add `sql` Shell -- Actually persist `~/.local/share/Trash` - -### v15 - -- Use the [`flake-parts`](https://flake.parts/) Flakes framework -- Improve Syntax Formatting with `treefmt-nix` and drop `pre-commit-hooks` -- Support declarative [Flatpak](https://flatpak.org/) application install -- Update Nix to version 2.19 -- Enable Security & Hardening settings by default -- Add Boot Recovery Settings -- Support Secure Boot using [`lanzaboote`](https://github.com/nix-community/lanzaboote) -- Allow patching Default Package Channel -- Show package delta using [`nvd`](https://gitlab.com/khumba/nvd) -- Upgrade to GNOME 45 - - Update Extensions -- Fix Emoji Support -- Drop `.templates` -- Multiple Refactors - - Separate `games` and `laptop` module - - Separate `install` Script - - Stop exposing `nixosModules` - - Fix `user.homeConfig` - -### v13 - -- Follow NixOS Unstable -- Improve `nix-index` -- Move out proprietary files -- Refactor Secrets -- Drop `deploy-rs` Support -- Remove `inputs` patching Support -- Fix first boot installation -- Add conditional to `lib.map.files` -- Add `gui.{wallpaper,wayland}` - -### 23.05 (v12) - -- Upgrade to NixOS v23.05 (Stoat)! -- Drop `cod`, `nix-linter`, `gedit`, `touchegg`, `vscode-server` and `mutter-rounded` -- Support Android Virtualisation using Waydroid -- Drop `compat` Libraries -- Refactor GNOME Experience - - Use `blackbox` as default terminal - - Use [`forge`](https://github.com/forge-ext/forge) for tiling - - Add keyboard shortcuts window using [`shortcuts`](https://gitlab.com/paddatrapper/shortcuts-gnome-extension) -- Improve XFCE Configuration and Handling -- Improve Automatic Package Update Script -- Enable ZFS encryption -- Support Network Printing - -### 22.11 (v11) - -- Upgrade to NixOS v22.05 (Quokka)! -- Add `lib.map.array` -- Improve `nixos` Script -- Add `gui.fonts.usershare` -- General Maintenance Updates -- Use [`treefmt`](https://github.com/numtide/treefmt) for Formatting Code - -### 22.04 (v10) - -- Deprecate `git-crypt` Usage -- Improve Installation Experience -- Begin Work on Blog -- Stabilize with multiple Bug-Fixes - -<details> -<summary><i>Archive</i></summary> - -### v7.0 - -- Create Website using [Zola](https://www.getzola.org/) -- Refine Compatibility Libraries -- Refine Scripts - - Use `nix-shell` Shebangs - - Add `lib.build.script` -- Support Visual Studio Code Editor -- Use [`alejandra`](https://github.com/kamadorueda/alejandra) for formatting code - -### v5.0 - -- Improve `channels` Usage -- Support `source` Filters -- Refine `git` Configuration -- Use `wine` Application Wrapper -- Use System Independent `library` -- Add Support for Ephemeral `/home` -- Add Configuration for [XFCE](https://xfce.org/) Desktop -- Bifurcate `users` and Refine User Configuration -- Support Automatic `packages` Updates using `update.sh` -- Add Support for Automatic Deployments using [`deploy-rs`](https://github.com/serokell/deploy-rs) -- Add Developer `shells` for Multiple Programming Languages integrated with [`lorri`](https://github.com/nix-community/lorri) - -### v4.5 - -- Use Calendar Versioning -- Use `nixConfig` -- Support Auto-Upgrade -- Support Multiple Users per Device -- Improve Security and Harden System -- Use PipeWire (with low-latency) for audio -- Use [`nixos-generators`](https://github.com/nix-community/nixos-generators) for Image Generation - -### v4.0 - -- Use `nixConfig` -- Bifurcate `devices` - - Refactor `lib.build.system` into `build.iso` and `build.device` -- Improve `lib` Handling -- Improve Module Imports -- Improve and Bifurcate `docs` -- Handle `scripts` as packages -- Improve configuration `checks` -- Achieve `system` Independence -- Add `.editorconfig` and `nanorc` -- Refactor `sops` Encrypted Secrets -- Stabilise and document `templates` -- Fix `devshells`, `repl` and `scripts` -- Fix Module Imports and `inputs` Patching -- Improve Mime Types Handling with `lib.xdg` -- Use `advanced` Ephemeral Root File System Layout with [ZFS](https://zfsonlinux.org/) -- Use [`flake-compat`](https://github.com/edolstra/flake-compat), [`nix-gaming`](https://github.com/fufexan/nix-gaming) and [`nix-wayland`](https://github.com/nix-community/nix-wayland) -- Improve Code Consistency, reduce Complexity and fix Syntactic and Semantic Errors - - - Use [`pre-commit-hooks`](https://github.com/cachix/pre-commit-hooks.nix) to improve configuration `checks` - - Use [`nixfmt`](https://github.com/serokell/nixfmt) for formatting code - - Use [`nix-linter`](https://github.com/Synthetica9/nix-linter) to check stylistic errors - -### v3.0 - -- Upgrade to NixOS v21.11 (Porcupine)! -- Improve Package Declaration -- Add Support for Instant Nix REPL -- Add Support for patching `inputs` -- Improve usage of Developer Shells -- Import Modules using `nixosModules` -- Use [`home-manager`](https://github.com/nix-community/home-manager) as a Module -- Merge Device and User Configuration -- Move all program configuration and dotfiles to `files` -- Use [`sops-nix`](https://github.com/Mic92/sops-nix) at `secrets` for managing authentication credentials -- Automatically map `modules`, `packages`, `overlays`, `shells` and `inputs` - -### v2.3 - -- Add `docs` directory -- Fix `.iso` Boot and Install Errors -- Improve Scripts with error-checking -- Add `direnv` support at `shells` -- Add Support for Nix Developer Shells at `shells` -- Use `secrets` as an `input` rather than as a `submodule` -- Improve CI with automatic `flake.lock` update and dependency-checking -- Bifurcate Flake `outputs` (as `configuration.nix`), `scripts` and `overlays` - -### v2.1 - -- Simplify Installation - - Add `install` Script - - Add Support for creating Install Media - - Add overhauled `setup` Script - - Automatically build `.iso` and publish release using CI -- Fix Home Activation - -### v2.0 - -- Add BTRFS (opt-in state) Configuration -- Improve Ephemeral Root Support with [impermanence](https://github.com/nix-community/impermanence) -- Improve Installation Experience -- Improve Home Activation -- Bifurcate Modules and Roles -- Reduce CI Time -- Add the Office role - -### v1.0 - -- Add Cachix Support -- Add Nix Shell Support -- Increase Readability -- Improve Package Management -- Under the hood CI changes - -### v0.7 - -- Improve Secrets Management using Private Submodule at `secrets` -- Overhaul Package Overrides - - Use `final: prev:` instead of `self: super:` - - Add support for NUR - - Split System Scripts and import as overlay - - Refactor Package Overrides into `packages` -- Add archived `dotfiles` and revitalize existing ones -- Improve Modulated Imports -- Improve Fonts Management -- Update README and `scripts` - -### v0.5 - -- Added Support for Nix Flakes -- Added Custom Libraries for Device and User Management -- Created System Management Script -- Updated README and `install` Script -- Add full support for Multi-Device Configuration -- Use Better Repository Management - -### v0.1 - -- Added basic NixOS system configuration using GNOME and GTK+ -- Added hardware support for 2 devices -- Added `setup` script -- Added `home-manager` support and user dotfiles -- Added Modulated Configuration -- Added Support for Nix User Repository -- Added Repository Pinning -- Added Essential Package Overlays -- Added Basic Password Management -- Added README - -</details> - -</details> - -<details> <summary><b>Known Limitations</b></summary> -- Home Configuration isn't be decoupled from System +- Home Configuration isn't decoupled from System ### Manual Intervention - Online accounts have to be manually signed into - [Wine](./packages/wine) Applications have to be manually updated - Logseq Plugins have to be manually installed -- GNOME [Pano](https://github.com/oae/gnome-shell-pano) has to be manually updated until upstream stabilises - Cannot automatically hibernate on NVIDIA due to upstream [issue](https://forums.developer.nvidia.com/t/systemds-suspend-then-hibernate-not-working-in-nvidia-optimus-laptop/213690) ### To Do diff --git a/checks/gitlab/pipelines/build.yml b/checks/gitlab/pipelines/build.yml @@ -21,7 +21,7 @@ iso: - tags except: - /^(?!stable).+@/ - script: nix build .#installMedia.default.config.system.build.isoImage -L --show-trace + script: nix build .#nixosConfigurations.install.config.system.build.images.iso -L --show-trace after_script: - nix profile install .#curl - - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ./result/iso/nixos.iso ${PACKAGE_REGISTRY}/installMedia/${CI_COMMIT_TAG}/NixOS.iso' + - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ./result/iso/install.iso ${PACKAGE_REGISTRY}/installMedia/${CI_COMMIT_TAG}/NixOS.iso' diff --git a/devices/README.md b/devices/README.md @@ -1,17 +1,16 @@ ### Devices -The `devices` directory contains the core definitions for multiple PCs and various other devices. To add a new device, simply create a configuration file for it (name of the file/directory must be the same as the `hostname` of the device) and write down the configuration using the options of the desired modules from the [`modules`](../modules/README.md) directory, or add your own configuration modules using the `imports` keyword. You can also use the keyword `format` to generate a particular type of image for that device (Eg. `iso`, generated using [`nixos-generators`](https://github.com/nix-community/nixos-generators)). Optionally, add user-specific configuration in [`users`](../users/README.md). Then, run the command `nixos-rebuild switch --flake .#HOSTNAME` and let Nix do all the work for you! +The `devices` directory contains the core definitions for multiple PCs and various other devices. To add a new device, simply create a configuration file for it (name of the file/directory must be the same as the `hostname` of the device) and write down the configuration using the options of the desired modules from the [`modules`](../modules/README.md) directory, or add your own configuration modules using the `imports` keyword. Optionally, add user-specific configuration in [`users`](../users/README.md). Then, run the command `nixos-rebuild switch --flake .#HOSTNAME` and let Nix do all the work for you! #### Additional Options These are the options that can be used in addition to the ones exposed by the [`modules`](../modules/README.md): +- `imports`: Additional Configuration Files to import - Ex. `[ ./hardware-configuration.nix ]` - `description`: System Description (to add to `config.system.name`) - `timezone`: System Time Zone - Ex. `"Asia/Kolkata"` - `locale`: Default Locale - Ex. `"IN"` - `kernel`: Linux Kernel to use (from `pkgs.linuxKernel.packages.linux_${kernel}`) - Ex. `zfs` - `kernelModules`: Additional Kernel Modules (to add to `config.boot.initrd.availableKernelModules`) - Ex. `[ "nvme" ]` -- `imports`: Additional Configuration Files to import - Ex. `[ ./hardware-configuration.nix ]` -- `format`: Generates Output for Specified Target Format (See [this](https://github.com/nix-community/nixos-generators#supported-formats) for the list of supported formats) - `user` or `users` (--> `config.user.settings`): Used to specify Device User/Multiple Users per Device - Ex. `users = [ { name "1"; } { name = "2"; } ]` - `update`: Enable Automatic System Upgrades - Ex. `weekly` diff --git a/devices/flake.nix b/devices/flake.nix @@ -1,53 +1,8 @@ -{ - lib, - util, - inputs, - ... -}: +{ util, ... }: let - inherit (inputs) self; - inherit (util) build map pack; - inherit (lib) listToAttrs nameValuePair; + inherit (util) build map; in { - flake = { - ## Device Configuration ## - nixosConfigurations = map.modules ./. (name: build.device (import name)); - - ## Install Media Configuration ## - installMedia = - listToAttrs ( - builtins.map ( - name: - nameValuePair name ( - build.device { - description = "Install Media"; - format = "iso"; - - # Region - timezone = "Asia/Kolkata"; - locale = "IN"; - - kernel = "lts"; - gui.desktop = name + "-iso"; - user = { - name = "nixos"; - description = "Default User"; - minimal = true; - shells = null; - password = builtins.readFile ../users/passwords/default; - }; - } - ) - ) (import ../modules/gui/desktop/iso.nix) - ) - // { - default = self.installMedia.gnome; - }; - }; - - # Install Media Checks - perSystem = _: { - checks = pack.device self.installMedia; - }; + ## Device Configuration ## + flake.nixosConfigurations = map.modules ./. (name: build.device (import name)); } diff --git a/devices/futura.nix b/devices/futura.nix @@ -20,7 +20,7 @@ ]; }; - gui.desktop = "xfce"; + gui.desktop = "pantheon"; apps.list = [ "firefox" "office" diff --git a/devices/install/default.nix b/devices/install/default.nix @@ -0,0 +1,17 @@ +{ + description = "Install Media"; + imports = [ ./image.nix ]; + + timezone = "Asia/Kolkata"; + locale = "IN"; + + kernel = "lts"; + gui.desktop = "install"; + user = { + name = "nixos"; + description = "Default User"; + minimal = true; + shells = null; + password = builtins.readFile ../../users/passwords/default; + }; +} diff --git a/devices/install/image.nix b/devices/install/image.nix @@ -0,0 +1,13 @@ +{ lib, pkgs, ... }: +{ + fileSystems."/".fsType = "tmpfs"; + environment.systemPackages = [ pkgs.custom.install ]; + image.modules.iso = { + image.baseName = lib.mkForce "install"; + system.switch.enable = false; + }; + + # Disabled Modules + user.homeConfig = lib.mkForce { }; + sops.secrets = lib.mkForce { }; +} diff --git a/devices/systems.nix b/devices/systems.nix @@ -1,3 +0,0 @@ -[ - "x86_64-linux" -] diff --git a/devices/valkyrie/drivers.nix b/devices/valkyrie/drivers.nix @@ -9,10 +9,8 @@ in { services.fwupd.enable = true; - # https://gitlab.freedesktop.org/drm/amd/-/issues/3388 - boot.kernelParams = [ - (mkIf (config.hardware.cpu.mode == "performance") "amdgpu.dcdebugmask=0x10") - ]; + # ! # https://gitlab.freedesktop.org/drm/amd/-/issues/3388 + boot.kernelParams = mkIf (config.hardware.cpu.mode == "performance") [ "amdgpu.dcdebugmask=0x10" ]; # Remap Keys services.udev.extraHwdb = '' diff --git a/files/colors/arc.yaml b/files/colors/arc.yaml @@ -1,18 +0,0 @@ -scheme: "Arc Dark" -author: "maydayv7" -base00: "#2F343F" -base01: "#404552" -base02: "#4B5162" -base03: "#7C818C" -base04: "#A2A2A2" -base05: "#F3F4F5" -base06: "#0F75BD" -base07: "#F9F9F9" -base08: "#9C3528" -base09: "#D64937" -base0A: "#F3B43A" -base0B: "#61BC3B" -base0C: "#288E9C" -base0D: "#0D68A8" -base0E: "#744560" -base0F: "#37C3D6" diff --git a/files/flake.nix b/files/flake.nix @@ -66,14 +66,10 @@ git.hooks = ./git/hooks; # GNOME Desktop - gnome = - { - iso = readFile ./gnome/iso; - } - // map.files { - directory = ./gnome; - extension = ".json"; - }; + gnome = map.files { + directory = ./gnome; + extension = ".json"; + }; # Hyprland WM hyprland = @@ -128,13 +124,6 @@ # Nano Text Editor nano = readFile ./nanorc; - # Plank Dock - plank = { - autostart = readFile ./plank/dock.desktop; - launchers = ./plank/launchers; - theme = readFile ./plank/dock.theme; - }; - # Custom Proprietary Files proprietary = inputs.proprietary.files; inherit (proprietary) wallpapers; @@ -156,27 +145,7 @@ extension = ".json"; }; - # XFCE Desktop - xfce = { - css = readFile ./xfce/gtk.css; - panel = ./xfce/panel; - settings = - { - directory = ./xfce/settings; - } - // map.files { - directory = ./xfce/settings; - apply = readFile; - extension = ".xml"; - }; - }; - # My Personal Website website = ../site; }; - - perSystem = _: { - # Formatting Errors - treefmt.config.programs.prettier.excludes = [ "files/xfce/gtk.css" ]; - }; } diff --git a/files/gnome/iso b/files/gnome/iso @@ -1,9 +0,0 @@ -[org.gnome.shell] -welcome-dialog-last-shown-version='9999999999' - -[org.gnome.desktop.session] -idle-delay=0 - -[org.gnome.settings-daemon.plugins.power] -sleep-inactive-ac-type='nothing' -sleep-inactive-battery-type='nothing' diff --git a/files/gnome/menu.json b/files/gnome/menu.json @@ -20,7 +20,7 @@ { "type": "command", "title": "Microphone Boost", - "command": "sh -c \"VALUE=$(zenity --scale --text='Select Microphone Boost value' --value=0 --min-value=0 --max-value=100 --step=5); amixer -c 1 sset 'Mic Boost' $VALUE; amixer -c 1 sset 'Internal Mic Boost' $VALUE\"", + "command": "sh -c \"CARD=$(arecord -l | grep card | awk '{print $3}'); VALUE=$(zenity --scale --text='Select Microphone Boost value' --value=0 --min-value=0 --max-value=100 --step=5); amixer -c $CARD sset 'Mic Boost' $VALUE\"", "instancing": "singleInstance", "icon": "microphone-symbolic", "killOnDisable": false diff --git a/files/gnome/shortcuts.json b/files/gnome/shortcuts.json @@ -68,10 +68,6 @@ "description": "Run app by position in launcher" }, { - "key": "; or ` in Overview", - "description": "Show open application windows" - }, - { "key": "Super + ←/→", "description": "Switch workspaces" }, @@ -216,6 +212,19 @@ ] }, { + "name": "Overview Actions TODO", + "shortcuts": [ + { + "key": "; or `", + "description": "Show open application windows" + }, + { + "key": "..", + "description": "Show system actions" + } + ] + }, + { "name": "Navigation Gestures", "shortcuts": [ { diff --git a/files/plank/dock.desktop b/files/plank/dock.desktop @@ -1,11 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Type=Application -Name=Dock -Comment= -Exec=plank -OnlyShowIn=XFCE; -RunHook=0 -StartupNotify=false -Terminal=false -Hidden=false diff --git a/files/plank/dock.theme b/files/plank/dock.theme @@ -1,34 +0,0 @@ -## Plank Dock Theme ## - -[PlankTheme] -TopRoundness=75 -BottomRoundness=0 -LineWidth=0 -OuterStrokeColor=0;;0;;0;;0 -FillStartColor=165;;165;;176;;91 -FillEndColor=165;;165;;176;;71 -InnerStrokeColor=0;;0;;0;;0 - -[PlankDockTheme] -HorizPadding=5 -TopPadding=-6 -BottomPadding=1 -ItemPadding=3 -IndicatorSize=7 -IconShadowSize=1.25 -UrgentBounceHeight=1.75 -LaunchBounceHeight=0.625 -FadeOpacity=1 -ClickTime=175 -UrgentBounceTime=600 -LaunchBounceTime=600 -ActiveTime=25 -SlideTime=4750 -FadeTime=350 -HideTime=725 -GlowSize=30 -GlowTime=10000 -GlowPulseTime=2750 -UrgentHueShift=175 -ItemMoveTime=450 -CascadeHide=true diff --git a/files/plank/launchers/io.elementary.code.dockitem b/files/plank/launchers/io.elementary.code.dockitem @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.code.desktop diff --git a/files/plank/launchers/io.elementary.files.dockitem b/files/plank/launchers/io.elementary.files.dockitem @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.files.desktop diff --git a/files/plank/launchers/io.elementary.mail.dockitem b/files/plank/launchers/io.elementary.mail.dockitem @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.mail.desktop diff --git a/files/plank/launchers/io.elementary.switchboard.dockitem b/files/plank/launchers/io.elementary.switchboard.dockitem @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.switchboard.desktop diff --git a/files/plank/launchers/io.elementary.terminal.dockitem b/files/plank/launchers/io.elementary.terminal.dockitem @@ -1,2 +0,0 @@ -[PlankDockItemPreferences] -Launcher=file:///run/current-system/sw/share/applications/io.elementary.terminal.desktop diff --git a/files/xfce/gtk.css b/files/xfce/gtk.css @@ -1,4 +0,0 @@ -.xfce4-panel#XfcePanelWindow { -XfcePanelWindow-autohide-size: 0; } - -wnck-pager:hover { background-color: #7c818c; } -wnck-pager:selected { background-color: #5294e2; } diff --git a/files/xfce/panel/docklike-26.rc b/files/xfce/panel/docklike-26.rc @@ -1,13 +0,0 @@ -[user] -showWindowCount=false -showPreviews=true -onlyDisplayVisible=true -indicatorStyle=1 -inactiveIndicatorStyle=4 -indicatorOrientation=1 -indicatorColorFromTheme=true -forceIconSize=true -iconSize=64 -keyComboActive=true -keyAloneActive=true -pinned=/run/current-system/sw/share/applications/google-chrome.desktop;/run/current-system/sw/share/applications/xfce4-terminal.desktop;/run/current-system/sw/share/applications/thunar.desktop;/run/current-system/sw/share/applications/org.xfce.mousepad.desktop;/run/current-system/sw/share/applications/xfce-settings-manager.desktop; diff --git a/files/xfce/panel/eyes-18.rc b/files/xfce/panel/eyes-18.rc @@ -1,2 +0,0 @@ -theme=Chibi -single_row=true diff --git a/files/xfce/panel/windowck-plugin-21.rc b/files/xfce/panel/windowck-plugin-21.rc @@ -1,14 +0,0 @@ -only_maximized=false -show_on_desktop=false -full_name=false -two_lines=false -show_tooltips=true -size_mode=2 -title_size=20 -sync_wm_font=true -title_font=@font Medium, Medium 11 -subtitle_font=sans 10 -title_alignment=0 -title_padding=10 -inactive_text_alpha=60 -inactive_text_shade=110 diff --git a/files/xfce/settings/keyboards.xml b/files/xfce/settings/keyboards.xml @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="keyboards" version="1.0"> - <property name="Default" type="empty"> - <property name="Numlock" type="bool" value="false"/> - <property name="RestoreNumlock" type="bool" value="true"/> - </property> -</channel> diff --git a/files/xfce/settings/parole.xml b/files/xfce/settings/parole.xml @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="parole" version="1.0"> - <property name="subtitles" type="empty"> - <property name="font" type="string" value="Sans Bold 20"/> - </property> - <property name="window" type="empty"> - <property name="maximized" type="bool" value="false"/> - </property> - <property name="audio" type="empty"> - <property name="volume" type="int" value="50"/> - </property> -</channel> diff --git a/files/xfce/settings/pointers.xml b/files/xfce/settings/pointers.xml @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="pointers" version="1.0"> - <property name="DLL09D900_04F33147_Touchpad" type="empty"> - <property name="Properties" type="empty"> - <property name="libinput_Tapping_Enabled" type="int" value="1"/> - </property> - <property name="RightHanded" type="bool" value="true"/> - <property name="Threshold" type="int" value="1"/> - <property name="Acceleration" type="double" value="6.300000"/> - <property name="ReverseScrolling" type="bool" value="true"/> - </property> -</channel> diff --git a/files/xfce/settings/thunar-volman.xml b/files/xfce/settings/thunar-volman.xml @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="thunar-volman" version="1.0"> - <property name="automount-media" type="empty"> - <property name="enabled" type="bool" value="true"/> - </property> - <property name="automount-drives" type="empty"> - <property name="enabled" type="bool" value="true"/> - </property> - <property name="autophoto" type="empty"> - <property name="enabled" type="bool" value="false"/> - </property> -</channel> diff --git a/files/xfce/settings/thunar.xml b/files/xfce/settings/thunar.xml @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="thunar" version="1.0"> - <property name="last-view" type="string" value="ThunarIconView"/> - <property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_150_PERCENT"/> - <property name="last-window-maximized" type="bool" value="false"/> - <property name="last-show-hidden" type="bool" value="false"/> - <property name="misc-single-click" type="bool" value="true"/> - <property name="misc-thumbnail-draw-frames" type="bool" value="false"/> - <property name="shortcuts-icon-size" type="string" value="THUNAR_ICON_SIZE_24"/> - <property name="tree-icon-size" type="string" value="THUNAR_ICON_SIZE_16"/> - <property name="misc-middle-click-in-tab" type="bool" value="true"/> - <property name="misc-recursive-permissions" type="string" value="THUNAR_RECURSIVE_PERMISSIONS_ALWAYS"/> - <property name="misc-show-delete-action" type="bool" value="true"/> - <property name="last-location-bar" type="string" value="ThunarLocationButtons"/> -</channel> diff --git a/files/xfce/settings/xfce4-appfinder.xml b/files/xfce/settings/xfce4-appfinder.xml @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-appfinder" version="1.0"> - <property name="actions" type="array"> - <value type="int" value="5"/> - <value type="int" value="4"/> - <value type="int" value="3"/> - <value type="int" value="2"/> - <value type="int" value="1"/> - <property name="action-5" type="empty"> - <property name="type" type="int" value="0"/> - <property name="pattern" type="string" value="/"/> - <property name="command" type="string" value="exo-open --launch FileManager %S"/> - <property name="save" type="bool" value="false"/> - </property> - <property name="action-4" type="empty"> - <property name="type" type="int" value="0"/> - <property name="pattern" type="string" value="#"/> - <property name="command" type="string" value="exo-open --launch TerminalEmulator man %s"/> - <property name="save" type="bool" value="false"/> - </property> - <property name="action-3" type="empty"> - <property name="type" type="int" value="0"/> - <property name="pattern" type="string" value="!w"/> - <property name="command" type="string" value="exo-open --launch WebBrowser http://en.wikipedia.org/wiki/%s"/> - <property name="save" type="bool" value="false"/> - </property> - <property name="action-2" type="empty"> - <property name="type" type="int" value="0"/> - <property name="pattern" type="string" value="$"/> - <property name="command" type="string" value="exo-open --launch TerminalEmulator %s"/> - <property name="save" type="bool" value="true"/> - </property> - <property name="action-1" type="empty"> - <property name="type" type="int" value="1"/> - <property name="pattern" type="string" value="^(file|http|https):\/\/(.*)$"/> - <property name="command" type="string" value="exo-open \0"/> - <property name="save" type="bool" value="false"/> - </property> - </property> -</channel> diff --git a/files/xfce/settings/xfce4-desktop.xml b/files/xfce/settings/xfce4-desktop.xml @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-desktop" version="1.0"> - <property name="backdrop" type="empty"> - <property name="screen0" type="empty"> - <property name="monitor@display" type="empty"> - <property name="workspace0" type="empty"> - <property name="color-style" type="int" value="0"/> - <property name="image-style" type="int" value="4"/> - <property name="last-image" type="string" value="@wallpaper"/> - </property> - <property name="workspace1" type="empty"> - <property name="color-style" type="int" value="0"/> - <property name="image-style" type="int" value="5"/> - </property> - <property name="workspace2" type="empty"> - <property name="color-style" type="int" value="0"/> - <property name="image-style" type="int" value="5"/> - </property> - <property name="workspace3" type="empty"> - <property name="color-style" type="int" value="0"/> - <property name="image-style" type="int" value="5"/> - </property> - </property> - </property> - </property> - <property name="desktop-icons" type="empty"> - <property name="icon-size" type="uint" value="48"/> - <property name="primary" type="bool" value="true"/> - <property name="use-custom-font-size" type="bool" value="false"/> - <property name="show-tooltips" type="bool" value="true"/> - <property name="single-click" type="bool" value="true"/> - <property name="file-icons" type="empty"> - <property name="show-removable" type="bool" value="false"/> - <property name="show-filesystem" type="bool" value="false"/> - </property> - </property> -</channel> diff --git a/files/xfce/settings/xfce4-keyboard-shortcuts.xml b/files/xfce/settings/xfce4-keyboard-shortcuts.xml @@ -1,193 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-keyboard-shortcuts" version="1.0"> - <property name="commands" type="empty"> - <property name="default" type="empty"> - <property name="&lt;Alt&gt;F1" type="empty"/> - <property name="&lt;Alt&gt;F2" type="empty"> - <property name="startup-notify" type="empty"/> - </property> - <property name="&lt;Alt&gt;F3" type="empty"> - <property name="startup-notify" type="empty"/> - </property> - <property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;l" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;t" type="empty"/> - <property name="XF86Display" type="empty"/> - <property name="&lt;Super&gt;p" type="empty"/> - <property name="&lt;Primary&gt;Escape" type="empty"/> - <property name="XF86WWW" type="empty"/> - <property name="HomePage" type="empty"/> - <property name="XF86Mail" type="empty"/> - <property name="Print" type="empty"/> - <property name="&lt;Alt&gt;Print" type="empty"/> - <property name="&lt;Shift&gt;Print" type="empty"/> - <property name="&lt;Super&gt;e" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;f" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Escape" type="empty"/> - <property name="&lt;Primary&gt;&lt;Shift&gt;Escape" type="empty"/> - <property name="&lt;Super&gt;r" type="empty"> - <property name="startup-notify" type="empty"/> - </property> - <property name="&lt;Alt&gt;&lt;Super&gt;s" type="empty"/> - </property> - <property name="custom" type="empty"> - <property name="&lt;Alt&gt;F2" type="empty"> - <property name="startup-notify" type="bool" value="true"/> - </property> - <property name="&lt;Super&gt;r" type="string" value="xfce4-appfinder -c"> - <property name="startup-notify" type="bool" value="true"/> - </property> - <property name="&lt;Alt&gt;F3" type="empty"> - <property name="startup-notify" type="bool" value="true"/> - </property> - <property name="&lt;Primary&gt;Escape" type="string" value="xfdesktop --menu"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="string" value="xfce4-session-logout"/> - <property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/> - <property name="override" type="bool" value="true"/> - <property name="&lt;Super&gt;t" type="string" value="exo-open --launch TerminalEmulator"/> - <property name="&lt;Super&gt;f" type="string" value="thunar"/> - <property name="&lt;Super&gt;Return" type="string" value="xfce4-appfinder"> - <property name="startup-notify" type="bool" value="true"/> - </property> - <property name="Print" type="string" value="xfce4-screenshooter -r"/> - <property name="&lt;Shift&gt;Print" type="string" value="xfce4-screenshooter -w"/> - <property name="&lt;Primary&gt;Print" type="string" value="xfce4-screenshooter"/> - <property name="&lt;Super&gt;space" type="string" value="xfce4-popup-whiskermenu"/> - <property name="&lt;Super&gt;v" type="string" value="xfce4-clipman-history"/> - <property name="&lt;Super&gt;w" type="string" value="exo-open --launch WebBrowser"/> - <property name="&lt;Super&gt;l" type="string" value="xflock4"/> - <property name="&lt;Super&gt;q" type="string" value="xkill"/> - <property name="Calculator" type="string" value="galculator"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Return" type="string" value="xfce4-taskmanager"/> - <property name="&lt;Super&gt;F1" type="string" value="xfce4-popup-applicationsmenu"> - <property name="startup-notify" type="bool" value="true"/> - </property> - <property name="&lt;Super&gt;e" type="string" value="exo-open --launch MailReader"/> - <property name="&lt;Super&gt;p" type="string" value="xfce4-panel-toggle"/> - </property> - </property> - <property name="xfwm4" type="empty"> - <property name="default" type="empty"> - <property name="&lt;Alt&gt;Insert" type="empty"/> - <property name="Escape" type="empty"/> - <property name="Left" type="empty"/> - <property name="Right" type="empty"/> - <property name="Up" type="empty"/> - <property name="Down" type="empty"/> - <property name="&lt;Alt&gt;Tab" type="empty"/> - <property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="empty"/> - <property name="&lt;Alt&gt;Delete" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="empty"/> - <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="empty"/> - <property name="&lt;Alt&gt;F4" type="empty"/> - <property name="&lt;Alt&gt;F6" type="empty"/> - <property name="&lt;Alt&gt;F7" type="empty"/> - <property name="&lt;Alt&gt;F8" type="empty"/> - <property name="&lt;Alt&gt;F9" type="empty"/> - <property name="&lt;Alt&gt;F10" type="empty"/> - <property name="&lt;Alt&gt;F11" type="empty"/> - <property name="&lt;Alt&gt;F12" type="empty"/> - <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;End" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="empty"/> - <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="empty"/> - <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="empty"/> - <property name="&lt;Alt&gt;space" type="empty"/> - <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;d" type="empty"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="empty"/> - <property name="&lt;Super&gt;Tab" type="empty"/> - <property name="&lt;Primary&gt;F1" type="empty"/> - <property name="&lt;Primary&gt;F2" type="empty"/> - <property name="&lt;Primary&gt;F3" type="empty"/> - <property name="&lt;Primary&gt;F4" type="empty"/> - <property name="&lt;Primary&gt;F5" type="empty"/> - <property name="&lt;Primary&gt;F6" type="empty"/> - <property name="&lt;Primary&gt;F7" type="empty"/> - <property name="&lt;Primary&gt;F8" type="empty"/> - <property name="&lt;Primary&gt;F9" type="empty"/> - <property name="&lt;Primary&gt;F10" type="empty"/> - <property name="&lt;Primary&gt;F11" type="empty"/> - <property name="&lt;Primary&gt;F12" type="empty"/> - <property name="&lt;Super&gt;KP_Left" type="empty"/> - <property name="&lt;Super&gt;KP_Right" type="empty"/> - <property name="&lt;Super&gt;KP_Down" type="empty"/> - <property name="&lt;Super&gt;KP_Up" type="empty"/> - <property name="&lt;Super&gt;KP_Page_Up" type="empty"/> - <property name="&lt;Super&gt;KP_Home" type="empty"/> - <property name="&lt;Super&gt;KP_End" type="empty"/> - <property name="&lt;Super&gt;KP_Next" type="empty"/> - </property> - <property name="custom" type="empty"> - <property name="&lt;Primary&gt;F12" type="string" value="workspace_12_key"/> - <property name="&lt;Alt&gt;F4" type="string" value="close_window_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="string" value="move_window_workspace_3_key"/> - <property name="&lt;Primary&gt;F2" type="string" value="workspace_2_key"/> - <property name="&lt;Primary&gt;F6" type="string" value="workspace_6_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="string" value="down_workspace_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="string" value="move_window_workspace_9_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;End" type="string" value="move_window_next_workspace_key"/> - <property name="&lt;Primary&gt;F8" type="string" value="workspace_8_key"/> - <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="string" value="move_window_left_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="string" value="move_window_workspace_4_key"/> - <property name="Right" type="string" value="right_key"/> - <property name="Down" type="string" value="down_key"/> - <property name="&lt;Primary&gt;F3" type="string" value="workspace_3_key"/> - <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="string" value="lower_window_key"/> - <property name="&lt;Primary&gt;F9" type="string" value="workspace_9_key"/> - <property name="&lt;Alt&gt;Tab" type="string" value="cycle_windows_key"/> - <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="string" value="move_window_right_key"/> - <property name="&lt;Alt&gt;F6" type="string" value="stick_window_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="string" value="move_window_workspace_5_key"/> - <property name="&lt;Primary&gt;F11" type="string" value="workspace_11_key"/> - <property name="&lt;Alt&gt;Delete" type="string" value="del_workspace_key"/> - <property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/> - <property name="&lt;Primary&gt;F4" type="string" value="workspace_4_key"/> - <property name="&lt;Alt&gt;F7" type="string" value="move_window_key"/> - <property name="Up" type="string" value="up_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="string" value="move_window_workspace_6_key"/> - <property name="&lt;Alt&gt;F11" type="string" value="fullscreen_key"/> - <property name="&lt;Alt&gt;space" type="string" value="popup_menu_key"/> - <property name="Escape" type="string" value="cancel_key"/> - <property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="string" value="raise_window_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="string" value="move_window_prev_workspace_key"/> - <property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="string" value="cycle_reverse_windows_key"/> - <property name="&lt;Alt&gt;F12" type="string" value="above_key"/> - <property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="string" value="move_window_up_key"/> - <property name="&lt;Primary&gt;F5" type="string" value="workspace_5_key"/> - <property name="&lt;Alt&gt;F8" type="string" value="resize_window_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="string" value="move_window_workspace_7_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="string" value="move_window_workspace_2_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="string" value="up_workspace_key"/> - <property name="&lt;Primary&gt;F7" type="string" value="workspace_7_key"/> - <property name="&lt;Primary&gt;F10" type="string" value="workspace_10_key"/> - <property name="Left" type="string" value="left_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="string" value="move_window_workspace_8_key"/> - <property name="&lt;Alt&gt;Insert" type="string" value="add_workspace_key"/> - <property name="&lt;Primary&gt;F1" type="string" value="workspace_1_key"/> - <property name="override" type="bool" value="true"/> - <property name="&lt;Super&gt;Up" type="string" value="maximize_window_key"/> - <property name="&lt;Super&gt;Down" type="string" value="hide_window_key"/> - <property name="&lt;Primary&gt;&lt;Alt&gt;1" type="string" value="move_window_workspace_1_key"/> - <property name="&lt;Super&gt;d" type="string" value="show_desktop_key"/> - <property name="&lt;Super&gt;Left" type="string" value="left_workspace_key"/> - <property name="&lt;Super&gt;Right" type="string" value="right_workspace_key"/> - </property> - </property> - <property name="providers" type="array"> - <value type="string" value="xfwm4"/> - <value type="string" value="commands"/> - </property> -</channel> diff --git a/files/xfce/settings/xfce4-notifyd.xml b/files/xfce/settings/xfce4-notifyd.xml @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-notifyd" version="1.0"> - <property name="applications" type="empty"> - <property name="known_applications" type="array"> - <value type="string" value="notify-send"/> - <value type="string" value="org.xfce.Thunar"/> - <value type="string" value="Xfce4-notifyd settings"/> - <value type="string" value="org.freedesktop.network-manager-applet"/> - <value type="string" value="Xfce volume control"/> - <value type="string" value="xfce4-power-manager"/> - </property> - </property> - <property name="primary-monitor" type="uint" value="0"/> - <property name="notify-location" type="uint" value="2"/> - <property name="log-level" type="uint" value="0"/> - <property name="log-level-apps" type="uint" value="0"/> - <property name="do-fadeout" type="bool" value="true"/> - <property name="do-slideout" type="bool" value="true"/> - <property name="log-max-size-enabled" type="bool" value="true"/> -</channel> diff --git a/files/xfce/settings/xfce4-panel.xml b/files/xfce/settings/xfce4-panel.xml @@ -1,224 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-panel" version="1.0"> - <property name="configver" type="int" value="2"/> - <property name="panels" type="array"> - <value type="int" value="0"/> - <value type="int" value="1"/> - <property name="dark-mode" type="bool" value="true"/> - <property name="panel-0" type="empty"> - <property name="autohide-behavior" type="uint" value="1"/> - <property name="background-alpha" type="uint" value="80"/> - <property name="background-rgba" type="array"> - <value type="double" value="1"/> - <value type="double" value="1"/> - <value type="double" value="1"/> - <value type="double" value="0.477966"/> - </property> - <property name="background-style" type="uint" value="0"/> - <property name="enter-opacity" type="uint" value="100"/> - <property name="icon-size" type="uint" value="0"/> - <property name="leave-opacity" type="uint" value="95"/> - <property name="length" type="uint" value="90"/> - <property name="length-adjust" type="bool" value="true"/> - <property name="mode" type="uint" value="0"/> - <property name="nrows" type="uint" value="1"/> - <property name="plugin-ids" type="array"> - <value type="int" value="1"/> - <value type="int" value="15"/> - <value type="int" value="22"/> - <value type="int" value="12"/> - <value type="int" value="16"/> - <value type="int" value="24"/> - <value type="int" value="18"/> - <value type="int" value="3"/> - <value type="int" value="4"/> - <value type="int" value="19"/> - <value type="int" value="17"/> - <value type="int" value="2"/> - <value type="int" value="6"/> - <value type="int" value="5"/> - <value type="int" value="7"/> - <value type="int" value="8"/> - <value type="int" value="20"/> - <value type="int" value="9"/> - <value type="int" value="10"/> - <value type="int" value="11"/> - <value type="int" value="13"/> - <value type="int" value="14"/> - </property> - <property name="position-locked" type="bool" value="true"/> - <property name="size" type="uint" value="27"/> - <property name="span-monitors" type="bool" value="false"/> - <property name="enable-struts" type="bool" value="true"/> - </property> - <property name="panel-1" type="empty"> - <property name="size" type="uint" value="72"/> - <property name="plugin-ids" type="array"> - <value type="int" value="23"/> - <value type="int" value="26"/> - <value type="int" value="25"/> - </property> - <property name="mode" type="uint" value="0"/> - <property name="length" type="double" value="1"/> - <property name="position-locked" type="bool" value="true"/> - <property name="autohide-behavior" type="uint" value="1"/> - <property name="nrows" type="uint" value="1"/> - <property name="length-adjust" type="bool" value="true"/> - <property name="icon-size" type="uint" value="16"/> - <property name="enter-opacity" type="uint" value="100"/> - <property name="leave-opacity" type="uint" value="85"/> - </property> - </property> - <property name="plugins" type="empty"> - <property name="plugin-10" type="string" value="actions"> - <property name="appearance" type="uint" value="1"/> - <property name="ask-confirmation" type="bool" value="true"/> - <property name="button-title" type="uint" value="0"/> - <property name="invert-orientation" type="bool" value="false"/> - <property name="items" type="array"> - <value type="string" value="+lock-screen"/> - <value type="string" value="+separator"/> - <value type="string" value="+suspend"/> - <value type="string" value="+hibernate"/> - <value type="string" value="+separator"/> - <value type="string" value="-hybrid-sleep"/> - <value type="string" value="+restart"/> - <value type="string" value="+shutdown"/> - <value type="string" value="+separator"/> - <value type="string" value="+switch-user"/> - <value type="string" value="-logout-dialog"/> - <value type="string" value="+logout"/> - </property> - </property> - <property name="plugin-11" type="string" value="separator"> - <property name="expand" type="bool" value="false"/> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-13" type="string" value="notification-plugin"/> - <property name="plugin-14" type="string" value="separator"> - <property name="expand" type="bool" value="false"/> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-3" type="string" value="separator"> - <property name="expand" type="bool" value="true"/> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-4" type="string" value="systray"> - <property name="icon-size" type="int" value="16"/> - <property name="show-frame" type="bool" value="false"/> - <property name="size-max" type="uint" value="16"/> - <property name="symbolic-icons" type="bool" value="true"/> - <property name="known-legacy-items" type="array"> - <value type="string" value="networkmanager applet"/> - </property> - </property> - <property name="plugin-5" type="string" value="pulseaudio"> - <property name="enable-keyboard-shortcuts" type="bool" value="true"/> - <property name="enable-mpris" type="bool" value="true"/> - <property name="enable-multimedia-keys" type="bool" value="true"/> - <property name="enable-wnck" type="bool" value="true"/> - <property name="show-notifications" type="bool" value="true"/> - </property> - <property name="plugin-6" type="string" value="power-manager-plugin"/> - <property name="plugin-7" type="string" value="separator"> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-8" type="string" value="clock"> - <property name="digital-format" type="string" value="%a %I:%M %p"/> - <property name="mode" type="uint" value="2"/> - <property name="show-frame" type="bool" value="true"/> - <property name="size-max" type="uint" value="22"/> - <property name="style" type="uint" value="0"/> - <property name="tooltip-format" type="string" value="%A %d %B %Y"/> - <property name="digital-time-format" type="string" value="%a %I:%M %p"/> - <property name="digital-layout" type="uint" value="3"/> - <property name="digital-time-font" type="string" value="@font 11"/> - </property> - <property name="plugin-9" type="string" value="separator"> - <property name="expand" type="bool" value="false"/> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-15" type="string" value="whiskermenu"> - <property name="button-icon" type="string" value="start-here"/> - <property name="launcher-icon-size" type="int" value="3"/> - <property name="hover-switch-category" type="bool" value="true"/> - <property name="favorites-in-recent" type="bool" value="true"/> - <property name="menu-width" type="int" value="858"/> - <property name="menu-height" type="int" value="569"/> - <property name="menu-opacity" type="int" value="90"/> - <property name="command-switchuser" type="string" value="dm-tool switch-to-greeter"/> - <property name="favorites" type="array"> - <value type="string" value="xfce4-web-browser.desktop"/> - <value type="string" value="xfce4-mail-reader.desktop"/> - <value type="string" value="xfce4-file-manager.desktop"/> - <value type="string" value="xfce4-terminal-emulator.desktop"/> - </property> - </property> - <property name="plugin-1" type="string" value="separator"> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-2" type="string" value="xfce4-clipman-plugin"/> - <property name="plugin-17" type="string" value="xfce4-notes-plugin"/> - <property name="plugin-18" type="string" value="eyes"/> - <property name="plugin-19" type="string" value="screenshooter"/> - <property name="plugin-20" type="string" value="weather"> - <property name="cache-max-age" type="int" value="172800"/> - <property name="power-saving" type="bool" value="true"/> - <property name="units" type="empty"> - <property name="temperature" type="int" value="0"/> - <property name="pressure" type="int" value="0"/> - <property name="windspeed" type="int" value="0"/> - <property name="precipitation" type="int" value="0"/> - <property name="altitude" type="int" value="0"/> - <property name="apparent-temperature" type="int" value="0"/> - </property> - <property name="round" type="bool" value="true"/> - <property name="single-row" type="bool" value="true"/> - <property name="tooltip-style" type="int" value="1"/> - <property name="forecast" type="empty"> - <property name="layout" type="int" value="1"/> - <property name="days" type="int" value="5"/> - </property> - <property name="theme-dir" type="string" value="/run/current-system/sw/share/xfce4/weather/icons/liquid"/> - <property name="scrollbox" type="empty"> - <property name="show" type="bool" value="true"/> - <property name="animate" type="bool" value="true"/> - <property name="lines" type="int" value="1"/> - <property name="color" type="string" value="rgba(0,0,0,0)"/> - <property name="use-color" type="bool" value="false"/> - </property> - </property> - <property name="plugin-22" type="string" value="separator"> - <property name="style" type="uint" value="2"/> - </property> - <property name="clipman" type="empty"> - <property name="tweaks" type="empty"> - <property name="paste-on-activate" type="uint" value="2"/> - <property name="popup-at-pointer" type="bool" value="true"/> - <property name="never-confirm-history-clear" type="bool" value="false"/> - </property> - </property> - <property name="plugin-12" type="string" value="pager"> - <property name="rows" type="uint" value="1"/> - <property name="wrap-workspaces" type="bool" value="true"/> - <property name="miniature-view" type="bool" value="true"/> - <property name="numbering" type="bool" value="false"/> - </property> - <property name="plugin-16" type="string" value="separator"> - <property name="style" type="uint" value="2"/> - <property name="expand" type="bool" value="false"/> - </property> - <property name="plugin-24" type="string" value="separator"> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-23" type="string" value="separator"> - <property name="expand" type="bool" value="false"/> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-25" type="string" value="separator"> - <property name="style" type="uint" value="0"/> - </property> - <property name="plugin-26" type="string" value="docklike"/> - </property> -</channel> diff --git a/files/xfce/settings/xfce4-power-manager.xml b/files/xfce/settings/xfce4-power-manager.xml @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-power-manager" version="1.0"> - <property name="xfce4-power-manager" type="empty"> - <property name="brightness-switch-restore-on-exit" type="int" value="1"/> - <property name="brightness-switch" type="int" value="0"/> - <property name="show-tray-icon" type="bool" value="false"/> - <property name="lock-screen-suspend-hibernate" type="bool" value="true"/> - <property name="power-button-action" type="uint" value="3"/> - <property name="sleep-button-action" type="uint" value="1"/> - <property name="hibernate-button-action" type="uint" value="3"/> - <property name="battery-button-action" type="uint" value="3"/> - <property name="handle-brightness-keys" type="bool" value="true"/> - <property name="inactivity-sleep-mode-on-battery" type="uint" value="1"/> - <property name="inactivity-on-battery" type="uint" value="30"/> - <property name="lid-action-on-battery" type="uint" value="0"/> - <property name="logind-handle-lid-switch" type="bool" value="false"/> - <property name="critical-power-action" type="uint" value="3"/> - <property name="critical-power-level" type="uint" value="7"/> - <property name="dpms-on-ac-sleep" type="uint" value="15"/> - <property name="dpms-on-ac-off" type="uint" value="25"/> - <property name="dpms-on-battery-off" type="uint" value="15"/> - <property name="brightness-on-battery" type="uint" value="9"/> - <property name="blank-on-battery" type="int" value="7"/> - <property name="dpms-on-battery-sleep" type="uint" value="10"/> - <property name="brightness-level-on-battery" type="uint" value="25"/> - <property name="show-panel-label" type="int" value="1"/> - <property name="show-presentation-indicator" type="bool" value="true"/> - </property> -</channel> diff --git a/files/xfce/settings/xfce4-screensaver.xml b/files/xfce/settings/xfce4-screensaver.xml @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-screensaver" version="1.0"> - <property name="saver" type="empty"> - <property name="mode" type="int" value="0"/> - </property> -</channel> diff --git a/files/xfce/settings/xfce4-session.xml b/files/xfce/settings/xfce4-session.xml @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-session" version="1.0"> - <property name="general" type="empty"> - <property name="FailsafeSessionName" type="empty"/> - <property name="LockCommand" type="empty"/> - </property> - <property name="sessions" type="empty"> - <property name="Failsafe" type="empty"> - <property name="IsFailsafe" type="empty"/> - <property name="Count" type="empty"/> - <property name="Client0_Command" type="empty"/> - <property name="Client0_Priority" type="empty"/> - <property name="Client0_PerScreen" type="empty"/> - <property name="Client1_Command" type="empty"/> - <property name="Client1_Priority" type="empty"/> - <property name="Client1_PerScreen" type="empty"/> - <property name="Client2_Command" type="empty"/> - <property name="Client2_Priority" type="empty"/> - <property name="Client2_PerScreen" type="empty"/> - <property name="Client3_Command" type="empty"/> - <property name="Client3_Priority" type="empty"/> - <property name="Client3_PerScreen" type="empty"/> - <property name="Client4_Command" type="empty"/> - <property name="Client4_Priority" type="empty"/> - <property name="Client4_PerScreen" type="empty"/> - </property> - </property> - <property name="shutdown" type="empty"> - <property name="LockScreen" type="bool" value="true"/> - </property> -</channel> diff --git a/files/xfce/settings/xfce4-terminal.xml b/files/xfce/settings/xfce4-terminal.xml @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfce4-terminal" version="1.0"> - <property name="background-mode" type="string" value="TERMINAL_BACKGROUND_TRANSPARENT"/> - <property name="background-darkness" type="double" value="0.85"/> - <property name="color-foreground" type="string" value="#839496"/> - <property name="color-background" type="string" value="#002b36"/> - <property name="color-palette" type="string" value="#000000;#cc0000;#4e9a06;#c4a000;#3465a4;#75507b;#06989a;#d3d7cf;#555753;#ef2929;#8ae234;#fce94f;#739fcf;#ad7fa8;#34e2e2;#eeeeec"/> - <property name="color-use-theme" type="bool" value="true"/> - <property name="font-use-system" type="bool" value="true"/> - <property name="misc-always-show-tabs" type="bool" value="false"/> - <property name="misc-bell" type="bool" value="false"/> - <property name="misc-bell-urgent" type="bool" value="false"/> - <property name="misc-borders-default" type="bool" value="true"/> - <property name="misc-cursor-blinks" type="bool" value="true"/> - <property name="misc-cursor-shape" type="string" value="TERMINAL_CURSOR_SHAPE_IBEAM"/> - <property name="misc-default-geometry" type="string" value="128x32"/> - <property name="misc-inherit-geometry" type="bool" value="false"/> - <property name="misc-menubar-default" type="bool" value="true"/> - <property name="misc-mouse-autohide" type="bool" value="true"/> - <property name="misc-mouse-wheel-zoom" type="bool" value="true"/> - <property name="misc-toolbar-default" type="bool" value="false"/> - <property name="misc-confirm-close" type="bool" value="true"/> - <property name="misc-cycle-tabs" type="bool" value="true"/> - <property name="misc-tab-close-buttons" type="bool" value="true"/> - <property name="misc-tab-close-middle-click" type="bool" value="true"/> - <property name="misc-tab-position" type="string" value="GTK_POS_TOP"/> - <property name="misc-highlight-urls" type="bool" value="true"/> - <property name="misc-middle-click-opens-uri" type="bool" value="true"/> - <property name="misc-copy-on-select" type="bool" value="false"/> - <property name="misc-show-relaunch-dialog" type="bool" value="true"/> - <property name="misc-rewrap-on-resize" type="bool" value="true"/> - <property name="misc-slim-tabs" type="bool" value="false"/> - <property name="misc-new-tab-adjacent" type="bool" value="false"/> - <property name="misc-search-dialog-opacity" type="uint" value="100"/> - <property name="misc-show-unsafe-paste-dialog" type="bool" value="true"/> - <property name="scrolling-on-output" type="bool" value="false"/> - <property name="scrolling-unlimited" type="bool" value="true"/> - <property name="tab-activity-color" type="string" value="#dc322f"/> - <property name="color-background-vary" type="bool" value="false"/> - <property name="color-cursor-foreground" type="string" value=""/> - <property name="color-cursor" type="string" value="#93a1a1"/> - <property name="color-cursor-use-default" type="bool" value="true"/> - <property name="color-selection" type="string" value=""/> - <property name="color-selection-background" type="string" value=""/> - <property name="color-selection-use-default" type="bool" value="true"/> - <property name="color-bold" type="string" value="#93a1a1"/> - <property name="color-bold-use-default" type="bool" value="false"/> - <property name="color-bold-is-bright" type="bool" value="true"/> -</channel> diff --git a/files/xfce/settings/xfwm4.xml b/files/xfce/settings/xfwm4.xml @@ -1,91 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xfwm4" version="1.0"> - <property name="general" type="empty"> - <property name="activate_action" type="string" value="bring"/> - <property name="borderless_maximize" type="bool" value="true"/> - <property name="box_move" type="bool" value="@compositor"/> - <property name="box_resize" type="bool" value="false"/> - <property name="button_layout" type="string" value="OS|HMC"/> - <property name="button_offset" type="int" value="0"/> - <property name="button_spacing" type="int" value="0"/> - <property name="click_to_focus" type="bool" value="true"/> - <property name="cycle_apps_only" type="bool" value="false"/> - <property name="cycle_draw_frame" type="bool" value="@compositor"/> - <property name="cycle_raise" type="bool" value="false"/> - <property name="cycle_hidden" type="bool" value="true"/> - <property name="cycle_minimum" type="bool" value="true"/> - <property name="cycle_minimized" type="bool" value="false"/> - <property name="cycle_preview" type="bool" value="true"/> - <property name="cycle_tabwin_mode" type="int" value="0"/> - <property name="cycle_workspaces" type="bool" value="false"/> - <property name="double_click_action" type="string" value="maximize"/> - <property name="double_click_distance" type="int" value="5"/> - <property name="double_click_time" type="int" value="250"/> - <property name="easy_click" type="string" value="Alt"/> - <property name="focus_delay" type="int" value="250"/> - <property name="focus_hint" type="bool" value="true"/> - <property name="focus_new" type="bool" value="true"/> - <property name="frame_opacity" type="int" value="100"/> - <property name="frame_border_top" type="int" value="0"/> - <property name="full_width_title" type="bool" value="true"/> - <property name="horiz_scroll_opacity" type="bool" value="false"/> - <property name="inactive_opacity" type="int" value="90"/> - <property name="maximized_offset" type="int" value="0"/> - <property name="mousewheel_rollup" type="bool" value="true"/> - <property name="move_opacity" type="int" value="100"/> - <property name="placement_mode" type="string" value="center"/> - <property name="placement_ratio" type="int" value="100"/> - <property name="popup_opacity" type="int" value="100"/> - <property name="prevent_focus_stealing" type="bool" value="false"/> - <property name="raise_delay" type="int" value="250"/> - <property name="raise_on_click" type="bool" value="true"/> - <property name="raise_on_focus" type="bool" value="false"/> - <property name="raise_with_any_button" type="bool" value="true"/> - <property name="repeat_urgent_blink" type="bool" value="false"/> - <property name="resize_opacity" type="int" value="100"/> - <property name="scroll_workspaces" type="bool" value="true"/> - <property name="shadow_delta_height" type="int" value="0"/> - <property name="shadow_delta_width" type="int" value="0"/> - <property name="shadow_delta_x" type="int" value="0"/> - <property name="shadow_delta_y" type="int" value="-3"/> - <property name="shadow_opacity" type="int" value="50"/> - <property name="show_app_icon" type="bool" value="false"/> - <property name="show_dock_shadow" type="bool" value="false"/> - <property name="show_frame_shadow" type="bool" value="true"/> - <property name="show_popup_shadow" type="bool" value="false"/> - <property name="snap_resist" type="bool" value="false"/> - <property name="snap_to_border" type="bool" value="true"/> - <property name="snap_to_windows" type="bool" value="false"/> - <property name="snap_width" type="int" value="10"/> - <property name="vblank_mode" type="string" value="auto"/> - <property name="theme" type="string" value="@theme"/> - <property name="tile_on_move" type="bool" value="true"/> - <property name="title_alignment" type="string" value="center"/> - <property name="title_font" type="string" value="@font Medium, Medium 11"/> - <property name="title_horizontal_offset" type="int" value="0"/> - <property name="titleless_maximize" type="bool" value="false"/> - <property name="title_shadow_active" type="string" value="false"/> - <property name="title_shadow_inactive" type="string" value="false"/> - <property name="title_vertical_offset_active" type="int" value="0"/> - <property name="title_vertical_offset_inactive" type="int" value="0"/> - <property name="toggle_workspaces" type="bool" value="false"/> - <property name="unredirect_overlays" type="bool" value="true"/> - <property name="urgent_blink" type="bool" value="false"/> - <property name="use_compositing" type="bool" value="@compositor"/> - <property name="workspace_count" type="int" value="4"/> - <property name="wrap_cycle" type="bool" value="true"/> - <property name="wrap_layout" type="bool" value="true"/> - <property name="wrap_resistance" type="int" value="10"/> - <property name="wrap_windows" type="bool" value="@compositor"/> - <property name="wrap_workspaces" type="bool" value="false"/> - <property name="zoom_desktop" type="bool" value="true"/> - <property name="zoom_pointer" type="bool" value="true"/> - <property name="workspace_names" type="array"> - <value type="string" value="Workspace 1"/> - <value type="string" value="Workspace 2"/> - <value type="string" value="Workspace 3"/> - <value type="string" value="Workspace 4"/> - </property> - </property> -</channel> diff --git a/files/xfce/settings/xsettings.xml b/files/xfce/settings/xsettings.xml @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<channel name="xsettings" version="1.0"> - <property name="Net" type="empty"> - <property name="ThemeName" type="string" value="@theme"/> - <property name="IconThemeName" type="string" value="@icons"/> - <property name="DoubleClickTime" type="empty"/> - <property name="DoubleClickDistance" type="empty"/> - <property name="DndDragThreshold" type="empty"/> - <property name="CursorBlink" type="empty"/> - <property name="CursorBlinkTime" type="empty"/> - <property name="SoundThemeName" type="empty"/> - <property name="EnableEventSounds" type="empty"/> - <property name="EnableInputFeedbackSounds" type="empty"/> - </property> - <property name="Xft" type="empty"> - <property name="DPI" type="int" value="101"/> - <property name="Antialias" type="empty"/> - <property name="Hinting" type="empty"/> - <property name="HintStyle" type="empty"/> - <property name="RGBA" type="empty"/> - </property> - <property name="Gtk" type="empty"> - <property name="CanChangeAccels" type="empty"/> - <property name="ColorPalette" type="empty"/> - <property name="FontName" type="string" value="@font Medium, Medium 10"/> - <property name="MonospaceFontName" type="string" value="@monospace 10"/> - <property name="IconSizes" type="empty"/> - <property name="KeyThemeName" type="empty"/> - <property name="ToolbarStyle" type="empty"/> - <property name="ToolbarIconSize" type="empty"/> - <property name="MenuImages" type="empty"/> - <property name="ButtonImages" type="bool" value="false"/> - <property name="MenuBarAccel" type="empty"/> - <property name="CursorThemeName" type="string" value="@cursor"/> - <property name="CursorThemeSize" type="empty"/> - <property name="DecorationLayout" type="empty"/> - <property name="DialogsUseHeader" type="empty"/> - <property name="TitlebarMiddleClick" type="empty"/> - </property> - <property name="Gdk" type="empty"> - <property name="WindowScalingFactor" type="int" value="1"/> - </property> - <property name="Xfce" type="empty"> - <property name="LastCustomDPI" type="int" value="101"/> - </property> -</channel> diff --git a/flake.lock b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1745357003, - "narHash": "sha256-jYwzQkv1r7HN/4qrAuKp+NR4YYNp2xDrOX5O9YVqkWo=", + "lastModified": 1747864449, + "narHash": "sha256-PIjVAWghZhr3L0EFM2UObhX84UQxIACbON0IC0zzSKA=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "a19cf76ee1a15c1c12083fa372747ce46387289f", + "rev": "389372c5f4dc1ac0e7645ed29a35fd6d71672ef5", "type": "github" }, "original": { @@ -38,11 +38,11 @@ "fromYaml": "fromYaml" }, "locked": { - "lastModified": 1732200724, - "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", + "lastModified": 1746562888, + "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", "owner": "SenchoPens", "repo": "base16.nix", - "rev": "153d52373b0fb2d343592871009a286ec8837aec", + "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", "type": "github" }, "original": { @@ -135,11 +135,11 @@ ] }, "locked": { - "lastModified": 1743414153, - "narHash": "sha256-bFIXz7SvLlSNR4M3vYPYS1CpEN9vTUiH01R4iR/BDmA=", + "lastModified": 1748080874, + "narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=", "owner": "catppuccin", "repo": "nix", - "rev": "2f52f9ead26f80d7b391cedcbb3eb309bd83fff4", + "rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112", "type": "github" }, "original": { @@ -181,11 +181,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1741628778, - "narHash": "sha256-RsvHGNTmO2e/eVfgYK7g+eYEdwwh7SbZa+gZkT24MEA=", + "lastModified": 1744642301, + "narHash": "sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "5a81d390bb64afd4e81221749ec4bffcbeb5fa80", + "rev": "59e3de00f01e5adb851d824cf7911bd90c31083a", "type": "github" }, "original": { @@ -241,7 +241,6 @@ } }, "flake-compat_4": { - "flake": false, "locked": { "lastModified": 1733328505, "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", @@ -272,28 +271,6 @@ "type": "github" } }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "stylix", - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flatpak": { "locked": { "lastModified": 1739444422, @@ -317,11 +294,11 @@ ] }, "locked": { - "lastModified": 1743081648, - "narHash": "sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE=", + "lastModified": 1748243702, + "narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "29a3d7b768c70addce17af0869f6e2bd8f5be4b7", + "rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007", "type": "github" }, "original": { @@ -337,11 +314,11 @@ ] }, "locked": { - "lastModified": 1741352980, - "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { @@ -374,11 +351,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1745545937, - "narHash": "sha256-joiviAxX26H0RFIe8E5iP3gSAV/f3v5Ae4SUZ85IDnE=", + "lastModified": 1748189689, + "narHash": "sha256-hB74AiTtPkvnZHKi09AQ/VndCcgllzzpSm4/SGfOPKA=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "8ae51ad90e1c75b8b77102240a02b6dea65fc15a", + "rev": "0ec005ba4fe744d1e8f960e8a3c45ae3aeb262c1", "type": "github" }, "original": { @@ -387,29 +364,6 @@ "type": "github" } }, - "generators": { - "inputs": { - "nixlib": [ - "nixpkgs" - ], - "nixpkgs": [ - "unstable" - ] - }, - "locked": { - "lastModified": 1742568034, - "narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=", - "owner": "nix-community", - "repo": "nixos-generators", - "rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixos-generators", - "type": "github" - } - }, "git-hooks": { "inputs": { "flake-compat": [ @@ -423,11 +377,11 @@ ] }, "locked": { - "lastModified": 1741379162, - "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=", + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", "type": "github" }, "original": { @@ -505,27 +459,27 @@ "gnome-shell": { "flake": false, "locked": { - "lastModified": 1732369855, - "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", + "lastModified": 1744584021, + "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "dadd58f630eeea41d645ee225a63f719390829dc", + "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", "type": "github" }, "original": { "owner": "GNOME", - "ref": "47.2", + "ref": "48.1", "repo": "gnome-shell", "type": "github" } }, "hardware": { "locked": { - "lastModified": 1743420942, - "narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=", + "lastModified": 1747900541, + "narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4", + "rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06", "type": "github" }, "original": { @@ -541,15 +495,16 @@ ] }, "locked": { - "lastModified": 1744400600, - "narHash": "sha256-qYhUgA98mhq1QK13r9qVY+sG1ri6FBgyp+GApX6wS20=", + "lastModified": 1748226808, + "narHash": "sha256-GaBRgxjWO1bAQa8P2+FDxG4ANBVhjnSjBms096qQdxo=", "owner": "nix-community", "repo": "home-manager", - "rev": "b74b22bb6167e8dff083ec6988c98798bf8954d3", + "rev": "83665c39fa688bd6a1f7c43cf7997a70f6a109f9", "type": "github" }, "original": { "owner": "nix-community", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } @@ -593,11 +548,11 @@ ] }, "locked": { - "lastModified": 1746728918, - "narHash": "sha256-KophdgmuoPO4adpgXxhDBAMQoRRoHjngiFWQxLoGgWY=", + "lastModified": 1748038505, + "narHash": "sha256-7L2MRMB2ONEh7wlgQzraEoA+0o88EOV87KNqZg7vpHA=", "owner": "VirtCode", "repo": "hypr-dynamic-cursors", - "rev": "1aabd346eb7ad12a614fd18d095d13422d8b95b4", + "rev": "761acf0e602e0f6549e5e6c0289a0402e6073489", "type": "github" }, "original": { @@ -616,11 +571,11 @@ ] }, "locked": { - "lastModified": 1746772087, - "narHash": "sha256-IFfMnkQZeWuRrMxbIDfVAcbAhWmLqMSno64+NnXMIAE=", + "lastModified": 1747335078, + "narHash": "sha256-SvL44b6bwmhMojg017RWuPG10iIK2yC1nS0AHfE3jY8=", "owner": "micha4w", "repo": "Hypr-DarkWindow", - "rev": "9d541dbd1e96d1dab887d9b6f10cbefd6476d104", + "rev": "c8eb492fb740a50b1251702ba5b02be3dcaf4da2", "type": "github" }, "original": { @@ -678,11 +633,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1747176389, - "narHash": "sha256-/1LO70LYdlECRCX5NuBWZxi7isllo4uJd6QI9vt9PQA=", + "lastModified": 1748191712, + "narHash": "sha256-q4Phr64XO/gq//0jwiYkcMXiWmSJ4VE/0Aqx1aE7DHM=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "59b23406804d0c6aa37dc40c271852e697759663", + "rev": "2347050285920925db8bc844e3232bc932eef21e", "type": "github" }, "original": { @@ -800,11 +755,11 @@ ] }, "locked": { - "lastModified": 1746655412, - "narHash": "sha256-kVQ0bHVtX6baYxRWWIh4u3LNJZb9Zcm2xBeDPOGz5BY=", + "lastModified": 1747484975, + "narHash": "sha256-+LAQ81HBwG0lwshHlWe0kfWg4KcChIPpnwtnwqmnoEU=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "557241780c179cf7ef224df392f8e67dab6cef83", + "rev": "163c83b3db48a17c113729c220a60b94596c9291", "type": "github" }, "original": { @@ -830,11 +785,11 @@ ] }, "locked": { - "lastModified": 1746806942, - "narHash": "sha256-fziL5ORI599D6Wp+BKlspxOqZ1HhCCLkq4C4FBwIwJo=", + "lastModified": 1748206008, + "narHash": "sha256-fSQLQXzvw6SLYZ6IUjiZhmTm5oSM/A3llOGo8dudWfE=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "c491d2831448645f24a1597a17f564aa52691ac6", + "rev": "a2157f8da740aa7d2909f7e9414f46097d4cd66d", "type": "github" }, "original": { @@ -850,11 +805,11 @@ ] }, "locked": { - "lastModified": 1747211694, - "narHash": "sha256-te5QuIKrR3BA/7hmdH4L6W3qc8jU8r+UU1M7bT/0j0Y=", + "lastModified": 1748271808, + "narHash": "sha256-CfkV+Fh8rKV8PJA2lMnc448TUPdpqdpMZL8GZucj4r8=", "owner": "H3rmt", "repo": "hyprshell-test", - "rev": "01758a6d6384c5ad73a841c3f2e8b90ee9912393", + "rev": "b8367b4de9dcd2a5b6e49a3e9322534657de4886", "type": "github" }, "original": { @@ -873,11 +828,11 @@ ] }, "locked": { - "lastModified": 1746741073, - "narHash": "sha256-qs8I5gBib+RLNGYa9om36VivHVrrisJDlZ4EnXNA6OQ=", + "lastModified": 1747531250, + "narHash": "sha256-uDhXNURTJgQSpiaCgzqAizbblpcEWEB1WGWEqtCnLLM=", "owner": "KZDKM", "repo": "Hyprspace", - "rev": "82bdb6720ef6163f0b10b49ba49702f0bde815d8", + "rev": "511d399120bdcafb43e57ca5ff35167c2bba6db8", "type": "github" }, "original": { @@ -943,11 +898,11 @@ ] }, "locked": { - "lastModified": 1739870480, - "narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=", + "lastModified": 1747584298, + "narHash": "sha256-PH9qZqWLHvSBQiUnA0NzAyQA3tu2no2z8kz0ZeHWj4w=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b", + "rev": "e511882b9c2e1d7a75d45d8fddd2160daeafcbc3", "type": "github" }, "original": { @@ -978,11 +933,11 @@ ] }, "locked": { - "lastModified": 1743306489, - "narHash": "sha256-LROaIjSLo347cwcHRfSpqzEOa2FoLSeJwU4dOrGm55E=", + "lastModified": 1748145500, + "narHash": "sha256-t9fx0l61WOxtWxXCqlXPWSuG/0XMF9DtE2T7KXgMqJw=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "b3696bfb6c24aa61428839a99e8b40c53ac3a82d", + "rev": "a98adbf54d663395df0b9929f6481d4d80fc8927", "type": "github" }, "original": { @@ -1005,11 +960,11 @@ ] }, "locked": { - "lastModified": 1747679390, - "narHash": "sha256-aPfEatxYs+WadAbKOZyY/36ykYzaohLXZ8JiWms3DP8=", + "lastModified": 1748137719, + "narHash": "sha256-yBiIy+eb0QxYoIOzOY7QyjqXY5PiLgIoNbFtg4SbUH8=", "owner": "kaylorben", "repo": "nixcord", - "rev": "22091416f12f9dc20896fce1a3530ea9c1384828", + "rev": "c4d7ccc9ae9fc1c46820bdc5b800b4f66e972ccc", "type": "github" }, "original": { @@ -1020,11 +975,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1744868846, - "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", + "lastModified": 1747958103, + "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", + "rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1", "type": "github" }, "original": { @@ -1052,7 +1007,10 @@ }, "nur": { "inputs": { - "flake-parts": "flake-parts", + "flake-parts": [ + "stylix", + "flake-parts" + ], "nixpkgs": [ "stylix", "nixpkgs" @@ -1060,11 +1018,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1741693509, - "narHash": "sha256-emkxnsZstiJWmGACimyAYqIKz2Qz5We5h1oBVDyQjLw=", + "lastModified": 1746056780, + "narHash": "sha256-/emueQGaoT4vu0QjU9LDOG5roxRSfdY0K2KkxuzazcM=", "owner": "nix-community", "repo": "NUR", - "rev": "5479646b2574837f1899da78bdf9a48b75a9fb27", + "rev": "d476cd0972dd6242d76374fcc277e6735715c167", "type": "github" }, "original": { @@ -1083,11 +1041,11 @@ ] }, "locked": { - "lastModified": 1746537231, - "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", + "lastModified": 1747372754, + "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", "type": "github" }, "original": { @@ -1153,7 +1111,6 @@ "formatter": "formatter", "framework": "framework", "gaming": "gaming", - "generators": "generators", "hardware": "hardware", "home": "home", "hyprcursors": "hyprcursors", @@ -1167,7 +1124,7 @@ "index": "index", "nixcord": "nixcord", "nixpkgs": [ - "unstable" + "stable" ], "proprietary": "proprietary", "sops": "sops", @@ -1209,11 +1166,11 @@ ] }, "locked": { - "lastModified": 1743305778, - "narHash": "sha256-Ux/UohNtnM5mn9SFjaHp6IZe2aAnUCzklMluNtV6zFo=", + "lastModified": 1747603214, + "narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=", "owner": "Mic92", "repo": "sops-nix", - "rev": "8e873886bbfc32163fe027b8676c75637b7da114", + "rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd", "type": "github" }, "original": { @@ -1232,11 +1189,11 @@ ] }, "locked": { - "lastModified": 1743308176, - "narHash": "sha256-xiHVIJsxj3tknObHzfKsWHQ0N38zyFsb8edB3oXDOxg=", + "lastModified": 1748147548, + "narHash": "sha256-9IaAQkgyF4PFtVyui8vF6oJah0iVcO9DaOefjdTMthE=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "567e5b6ee6d7433261f16b400e424a6bd5c8c8b3", + "rev": "f0595e3b59260457042450749eaec00a5a47db35", "type": "github" }, "original": { @@ -1247,16 +1204,16 @@ }, "stable": { "locked": { - "lastModified": 1743367904, - "narHash": "sha256-sOos1jZGKmT6xxPvxGQyPTApOunXvScV4lNjBCXd/CI=", + "lastModified": 1748162331, + "narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7ffe0edc685f14b8c635e3d6591b0bbb97365e6c", + "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } @@ -1269,8 +1226,8 @@ "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat_4", - "flake-utils": [ - "utils" + "flake-parts": [ + "framework" ], "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", @@ -1291,15 +1248,16 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1743464673, - "narHash": "sha256-XQXrK7o2c/5VgiyaSbaIeKhtfhSiF5ykppITYzPnXtk=", - "owner": "danth", + "lastModified": 1748214985, + "narHash": "sha256-Xs2uQz5HI0o/zsenCcfPz9d0oZij0//Fa1OLAu1zhS8=", + "owner": "nix-community", "repo": "stylix", - "rev": "711bd28ac96dec8c9187f8db4a297677eef2e654", + "rev": "c8e57b9bba85458a376c8c12aafe55ffc6ba2cb1", "type": "github" }, "original": { - "owner": "danth", + "owner": "nix-community", + "ref": "release-25.05", "repo": "stylix", "type": "github" } @@ -1356,28 +1314,27 @@ "tinted-kitty": { "flake": false, "locked": { - "lastModified": 1716423189, - "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", "owner": "tinted-theming", "repo": "tinted-kitty", - "rev": "eb39e141db14baef052893285df9f266df041ff8", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "tinted-kitty", - "rev": "eb39e141db14baef052893285df9f266df041ff8", "type": "github" } }, "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1741468895, - "narHash": "sha256-YKM1RJbL68Yp2vESBqeZQBjTETXo8mCTTzLZyckCfZk=", + "lastModified": 1744974599, + "narHash": "sha256-Fg+rdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY=", "owner": "tinted-theming", "repo": "schemes", - "rev": "47c8c7726e98069cade5827e5fb2bfee02ce6991", + "rev": "28c26a621123ad4ebd5bbfb34ab39421c0144bdd", "type": "github" }, "original": { @@ -1389,11 +1346,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1740877430, - "narHash": "sha256-zWcCXgdC4/owfH/eEXx26y5BLzTrefjtSLFHWVD5KxU=", + "lastModified": 1745111349, + "narHash": "sha256-udV+nHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "d48ee86394cbe45b112ba23ab63e33656090edb4", + "rev": "e009f18a01182b63559fb28f1c786eb027c3dee9", "type": "github" }, "original": { @@ -1442,11 +1399,11 @@ }, "unstable": { "locked": { - "lastModified": 1743964447, - "narHash": "sha256-nEo1t3Q0F+0jQ36HJfbJtiRU4OI+/0jX/iITURKe3EE=", + "lastModified": 1748026106, + "narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "063dece00c5a77e4a0ea24e5e5a5bd75232806f8", + "rev": "063f43f2dbdef86376cc29ad646c45c46e93234c", "type": "github" }, "original": { @@ -1504,11 +1461,11 @@ ] }, "locked": { - "lastModified": 1743386331, - "narHash": "sha256-LqcqOUJJcTUgACX2N+i6cqMTZ/b0WAT4WUhwV9JWsZg=", + "lastModified": 1748225039, + "narHash": "sha256-Lvl26mCEatC5akRHywuXkYM6ZKc7R5T9m6u7rBPtNQw=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "300097f877ee9a0c401a57e7ec731f4edace7117", + "rev": "cde730cb9dc2759104d7c8c27cb36d73189be1e2", "type": "github" }, "original": { @@ -1525,11 +1482,11 @@ ] }, "locked": { - "lastModified": 1743423073, - "narHash": "sha256-pDLAW0r9eq9Z6vhJcri0EXn2GU0Z/S0bpusfpaxI5jk=", + "lastModified": 1747663739, + "narHash": "sha256-co8s0ShA+gydf15g2NZeJWgbdf06hdiYzq6mBbBGcAE=", "owner": "emmanuelrosa", "repo": "erosanix", - "rev": "6b187805164e2f36a4acddcea5a22118336d9253", + "rev": "c7e09491873662b77b70b6cb187d2265d95ed097", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix @@ -23,7 +23,6 @@ # Author -> V 7 <maydayv7@gmail.com> # # License -> MIT # # URL -> github:maydayv7/dotfiles # -# Version -> v25.5 # # --------------------------------------- # # Welcome to Ground Zero! # # The very heart of my 'dotfiles' # @@ -38,8 +37,8 @@ inputs = { ## Package Repositories ## # NixOS Packages Repository - nixpkgs.follows = "unstable"; - stable.url = "github:NixOS/nixpkgs?ref=nixos-24.11"; + nixpkgs.follows = "stable"; + stable.url = "github:NixOS/nixpkgs?ref=nixos-25.05"; # Unstable Packages Repository unstable.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; @@ -88,7 +87,7 @@ ## Feature Modules # User Home Manager home = { - url = "github:nix-community/home-manager"; + url = "github:nix-community/home-manager?ref=release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -113,15 +112,6 @@ # Filesystem State Handler impermanence.url = "github:nix-community/impermanence"; - # System Image Generators - generators = { - url = "github:nix-community/nixos-generators"; - inputs = { - nixlib.follows = "nixpkgs"; - nixpkgs.follows = "unstable"; - }; - }; - # Nix Index Database index = { url = "github:Mic92/nix-index-database"; @@ -159,11 +149,11 @@ ## Theming # Base16 Theming Module stylix = { - url = "github:danth/stylix"; + url = "github:nix-community/stylix?ref=release-25.05"; inputs = { nixpkgs.follows = "nixpkgs"; systems.follows = "systems"; - flake-utils.follows = "utils"; + flake-parts.follows = "framework"; home-manager.follows = "home"; }; }; diff --git a/modules/README.md b/modules/README.md @@ -27,7 +27,7 @@ Configuration [Builder](./configuration.nix) - [`gui`](./gui): Module that configures GUI Desktops/Environments and the like - - - `desktop`: Choice of GUI Desktop - `"hyprland" / "gnome" / "xfce" / "pantheon"` + - `desktop`: Choice of GUI Desktop - `"hyprland" / "gnome" / "pantheon"` - `display`: Main GUI Display - Ex. `"HDMI-A-1"` - `wallpaper`: Desktop Wallpaper Choice (taken from `files.wallpapers`) - `fancy`: Enable Fancy GUI Effects - `true / false` @@ -51,10 +51,6 @@ Configuration [Builder](./configuration.nix) - `theme` - - `name`: QT Application Theme - `package`: QT Theme Package - - `wayland` - - - `enable`: Enable Wayland Configuration - `true / false` - - `xorg` - - - `enable`: Enable X11 Server Configuration - `true / false` - [`hardware`](./hardware): Module that configures device and additional hardware - diff --git a/modules/apps/notes.nix b/modules/apps/notes.nix @@ -6,7 +6,6 @@ files, ... }: -with files.logseq; let enable = builtins.elem "notes" config.apps.list; mutable = { @@ -26,6 +25,7 @@ in ]; homeConfig.home.file = + with files.logseq; { ".config/logseq/configs.edn".text = ''{:window/native-titlebar? true}''; ".logseq/preferences.json" = { diff --git a/modules/apps/office.nix b/modules/apps/office.nix @@ -50,7 +50,7 @@ in # Graphics drawing - gimp + gimp3 handbrake inkscape xournalpp @@ -104,6 +104,7 @@ in ".local/share/data" ".local/share/onlyoffice" ".local/share/whatsapp-for-linux" + ".cache/gimp" ".cache/thunderbird" ".cache/google-chrome" ".cache/whatsapp-for-linux" diff --git a/modules/apps/vscode.nix b/modules/apps/vscode.nix @@ -6,7 +6,6 @@ files, ... }: -with files.vscode; let inherit (builtins) elem head; enable = elem "vscode" config.apps.list; @@ -46,7 +45,7 @@ in programs.vscode = { enable = true; package = pkgs.vscode; - profiles.default = { + profiles.default = with files.vscode; { # Keyboard Shortcuts inherit keybindings; diff --git a/modules/base/console.nix b/modules/base/console.nix @@ -20,7 +20,7 @@ in # TTY services.kmscon = { enable = true; - hwRender = true; + hwRender = false; # ! # https://github.com/NixOS/nixpkgs/issues/385497 extraConfig = '' font-name=${font} font-size=14 diff --git a/modules/base/default.nix b/modules/base/default.nix @@ -3,7 +3,6 @@ options, lib, util, - inputs, pkgs, ... }: @@ -22,7 +21,7 @@ let in { ## BASE Configuration ## - imports = util.map.modules.list ./. ++ [ inputs.generators.nixosModules.all-formats ]; + imports = util.map.modules.list ./.; options.base = { kernel = mkOption { @@ -74,6 +73,7 @@ in mkIf (hasPrefix "special." label) (removePrefix "special." label); systemPackages = with pkgs; [ + custom.nixos cryptsetup inxi killall diff --git a/modules/base/firmware.nix b/modules/base/firmware.nix @@ -33,6 +33,7 @@ in }; security.rtkit.enable = true; + environment.systemPackages = [ pkgs.alsa-utils ]; hardware.alsa.enablePersistence = true; services.actkbd = let diff --git a/modules/configuration.nix b/modules/configuration.nix @@ -9,7 +9,6 @@ in system ? "x86_64-linux", name ? "nixos", description ? "", - format ? null, imports ? [ ], timezone, locale, @@ -30,10 +29,9 @@ let # Configuration Libraries inherit (inputs.nixpkgs) lib; - inherit (lib) fileContents makeOverridable mkIf; + inherit (lib) fileContents mkIf; inherit (builtins) attrValues - getAttr hashString map removeAttrs @@ -76,8 +74,9 @@ in # Assertions assert (user == null) -> (users != null); ## Device Configuration ## -(makeOverridable lib.nixosSystem) { +import ((self.patchedPkgs system) + "/nixos/lib/eval-config.nix") { inherit system; + specialArgs = { inherit util inputs files; lib = lib // { @@ -92,28 +91,7 @@ assert (user == null) -> (users != null); imports ++ attrValues (removeAttrs (util.map.modules ./. import) [ "configuration" ]) ++ map user' (if (user != null) then [ user ] else users) - ++ util.map.array (hardware.modules or [ ]) inputs.hardware.nixosModules - ++ ( - if (format != null) then - [ - (getAttr format inputs.generators.nixosModules) - ( - if (format == "iso") then - { - image.baseName = lib.mkForce "nixos"; - environment.systemPackages = [ pkgs.custom.install ]; - - # Disabled Modules - user.homeConfig = lib.mkForce { }; - sops.secrets = lib.mkForce { }; - } - else - { } - ) - ] - else - [ { environment.systemPackages = [ pkgs.custom.nixos ]; } ] - ); + ++ util.map.array (hardware.modules or [ ]) inputs.hardware.nixosModules; inherit apps @@ -148,10 +126,8 @@ assert (user == null) -> (users != null); inherit (files.path) flake; }; - switch.enable = if (format != null) then false else true; - # Version - stateVersion = fileContents "${inputs.nixpkgs}/.version"; + stateVersion = fileContents "${inputs.nixpkgs}/lib/.version"; configurationRevision = if (self ? rev) then "${substring 0 8 self.lastModifiedDate}.${self.shortRev}" diff --git a/modules/gui/default.nix b/modules/gui/default.nix @@ -3,16 +3,12 @@ options, lib, util, - pkgs, ... }: let - inherit (builtins) map; inherit (util.map.modules) list name; inherit (lib) - hasSuffix mkEnableOption - mkForce mkIf mkMerge mkOption @@ -37,7 +33,7 @@ in desktop = mkOption { description = "GUI Desktop Choice"; - type = types.enum ((name ./desktop) ++ map (x: x + "-iso") (import ./desktop/iso.nix) ++ [ "" ]); + type = types.enum ((name ./desktop) ++ [ "" ]); default = ""; }; }; @@ -46,39 +42,39 @@ in { warnings = optional (desktop == "") (options.gui.desktop.description + " is unset"); } ## Desktop Environment - (mkIf (desktop != "" && !(hasSuffix "-iso" desktop)) { - user.persist.directories = [ - ".config/autostart" - ".local/share/gvfs-metadata" - ]; - + (mkIf (desktop != "" && desktop != "install") { # Utilities - programs.seahorse.enable = true; - user.homeConfig.services.mpris-proxy.enable = true; + gui.fonts.enable = true; services = { gvfs.enable = true; gnome.gnome-keyring.enable = true; }; + programs = { + xwayland.enable = true; + seahorse.enable = true; + }; - # Desktop Integration - environment.pathsToLink = [ - "/share/xdg-desktop-portal" - "/share/applications" - ]; + user = { + homeConfig.services.mpris-proxy.enable = true; + persist.directories = [ + ".config/autostart" + ".local/share/gvfs-metadata" + ]; + }; + + # Environment Setup + environment.sessionVariables = { + "NIXOS_OZONE_WL" = "1"; + "QT_QPA_PLATFORM" = "wayland;xcb"; + "MOZ_ENABLE_WAYLAND" = "1"; + "CLUTTER_BACKEND" = "wayland"; + }; xdg.portal = { enable = true; xdgOpenUsePortal = true; + wlr.enable = true; }; }) - - ## Install Media - (mkIf (hasSuffix "-iso" desktop) { - xdg.portal.enable = mkForce false; - environment.systemPackages = with pkgs; [ - epiphany - gparted - ]; - }) ]; } diff --git a/modules/gui/desktop/gnome/common.nix b/modules/gui/desktop/gnome/common.nix @@ -0,0 +1,44 @@ +{ + config, + lib, + pkgs, + ... +}: +let + inherit (lib) + gvariant + mkForce + ; +in +{ + # Session + services = { + displayManager.defaultSession = "gnome"; + xserver = { + desktopManager.gnome.enable = true; + displayManager.gdm.enable = true; + }; + + # Initial Setup + gnome.gnome-initial-setup.enable = mkForce false; + }; + + # Excluded Packages + environment.gnome.excludePackages = with pkgs; [ + totem + 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; + }; + }; + } + ]; +} diff --git a/modules/gui/desktop/gnome/default.nix b/modules/gui/desktop/gnome/default.nix @@ -6,66 +6,23 @@ files, ... }@args: -with files; let inherit (lib) - gvariant - hasPrefix mkIf mkForce mkMerge ; - inherit (config.gui) desktop; exists = app: builtins.elem app config.apps.list; in { ## GNOME Configuration ## - config = mkIf (hasPrefix "gnome" desktop) (mkMerge [ - ## Environment Setup - { - # Session - services = { - displayManager.defaultSession = "gnome"; - xserver = { - desktopManager.gnome.enable = true; - displayManager.gdm.enable = true; - }; - - # Initial Setup - gnome.gnome-initial-setup.enable = mkForce false; - }; - - # Excluded Packages - environment.gnome.excludePackages = with pkgs; [ - totem - 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; - }; - }; - } - ]; - } - - ## Install Media Configuration - (mkIf (desktop == "gnome-iso") (import ./iso.nix args)) + config = mkIf (config.gui.desktop == "gnome") (mkMerge [ + (import ./common.nix args) - ## Desktop Configuration - (mkIf (desktop == "gnome") { + { # Desktop Integration gui = { - fonts.enable = true; - wayland.enable = true; - gtk = { enable = true; theme = { @@ -84,6 +41,13 @@ in }; }; + # Color Scheme + stylix = { + base16Scheme = files.colors.adwaita; + targets.gnome.enable = false; + }; + + # Essential Utilities services = { udev.packages = [ pkgs.gnome-settings-daemon ]; telepathy.enable = true; @@ -123,79 +87,12 @@ in # Screen Brightness user.groups = [ "i2c" ]; hardware.i2c.enable = true; - }) - - (mkIf (desktop == "gnome") { - user.homeConfig = { - # Desktop Settings - imports = [ ./settings ]; - stylix.targets = { - gnome.enable = true; - ghostty.enable = true; - }; - - # Default Applications - xdg.mimeApps.defaultApplications = util.build.mime { - archive = [ "org.gnome.FileRoller.desktop" ]; - audio = [ "org.gnome.Lollypop.desktop" ]; - calendar = [ "org.gnome.Calendar.desktop" ]; - document = [ "org.gnome.Papers.desktop" ]; - directory = [ "org.gnome.Nautilus.desktop" ]; - image = [ "org.gnome.Loupe.desktop" ]; - magnet = [ "de.haeckerfelix.Fragments.desktop" ]; - mail = [ "org.gnome.Geary.desktop" ]; - markdown = [ "org.gnome.gitlab.somas.Apostrophe.desktop" ]; - pdf = [ "org.gnome.Papers.desktop" ]; - text = [ "org.gnome.TextEditor.desktop" ]; - video = [ "io.github.celluloid_player.Celluloid.desktop" ]; - }; - - ## Terminal - programs.ghostty = { - enable = true; - settings = { - # Features - clipboard-paste-protection = true; - clipboard-trim-trailing-spaces = true; - copy-on-select = false; - mouse-hide-while-typing = true; - quit-after-last-window-closed = true; - scrollback-limit = 4200; - shell-integration-features = true; - window-vsync = true; - - # Keybindings - keybind = [ - "ctrl+h=goto_split:left" - "ctrl+j=goto_split:bottom" - "ctrl+k=goto_split:top" - "ctrl+l=goto_split:right" - "ctrl+shift+h=new_split:left" - "ctrl+shift+j=new_split:down" - "ctrl+shift+k=new_split:up" - "ctrl+shift+l=new_split:right" - "ctrl+shift+enter=new_split:auto" - "ctrl+shift+i=inspector:toggle" - "ctrl+shift+r=reload_config" - "ctrl+t=new_tab" - "ctrl+f=write_scrollback_file:open" - ]; - }; - }; - }; - - ## Color Scheme - stylix = { - base16Scheme = colors.adwaita; - targets.gnome.enable = false; - }; ## Package List environment.systemPackages = with pkgs; [ ghostty gnome-boxes gnome-sound-recorder - gnome-text-editor gnome-tweaks papers zenity @@ -228,7 +125,7 @@ in gnuchess ]; - # Persisted Files + ## Persisted Files user.persist.directories = [ # Apps ".config/evolution" @@ -253,10 +150,68 @@ in ".config/paperwm" ".local/share/clipboard" ]; - }) + + user.homeConfig = { + ## Desktop Settings + imports = [ ./settings ]; + stylix.targets = { + gnome.enable = true; + ghostty.enable = true; + }; + + # Default Applications + xdg.mimeApps.defaultApplications = util.build.mime { + archive = [ "org.gnome.FileRoller.desktop" ]; + audio = [ "org.gnome.Lollypop.desktop" ]; + calendar = [ "org.gnome.Calendar.desktop" ]; + document = [ "org.gnome.Papers.desktop" ]; + directory = [ "org.gnome.Nautilus.desktop" ]; + image = [ "org.gnome.Loupe.desktop" ]; + magnet = [ "de.haeckerfelix.Fragments.desktop" ]; + mail = [ "org.gnome.Geary.desktop" ]; + markdown = [ "org.gnome.gitlab.somas.Apostrophe.desktop" ]; + pdf = [ "org.gnome.Papers.desktop" ]; + text = [ "org.gnome.TextEditor.desktop" ]; + video = [ "io.github.celluloid_player.Celluloid.desktop" ]; + }; + + ## Terminal + programs.ghostty = { + enable = true; + settings = { + # Features + clipboard-paste-protection = true; + clipboard-trim-trailing-spaces = true; + copy-on-select = false; + mouse-hide-while-typing = true; + quit-after-last-window-closed = true; + scrollback-limit = 4200; + shell-integration-features = true; + window-vsync = true; + + # Keybindings + keybind = [ + "ctrl+h=goto_split:left" + "ctrl+j=goto_split:bottom" + "ctrl+k=goto_split:top" + "ctrl+l=goto_split:right" + "ctrl+shift+h=new_split:left" + "ctrl+shift+j=new_split:down" + "ctrl+shift+k=new_split:up" + "ctrl+shift+l=new_split:right" + "ctrl+shift+enter=new_split:auto" + "ctrl+shift+i=inspector:toggle" + "ctrl+shift+r=reload_config" + "ctrl+t=new_tab" + "ctrl+f=write_scrollback_file:open" + ]; + }; + }; + }; + } ## 3rd Party Apps Configuration - (mkIf (desktop == "gnome") { + { user.homeConfig = { # Firefox GNOME Theme stylix.targets.firefox = { @@ -303,14 +258,6 @@ in } ]; }; - }) - - ## XORG Configuration - (mkIf (desktop == "gnome") { - specialisation.xorg.configuration.services = { - touchegg.enable = true; - displayManager.defaultSession = mkForce "gnome-xorg"; - }; - }) + } ]); } diff --git a/modules/gui/desktop/gnome/iso.nix b/modules/gui/desktop/gnome/iso.nix @@ -1,43 +0,0 @@ -{ - lib, - pkgs, - files, - ... -}: -let - inherit (lib) mkForce; -in -{ - services.xserver = { - displayManager.gdm.autoSuspend = false; # Disable Suspension - desktopManager.gnome = { - extraGSettingsOverrides = files.gnome.iso; - extraGSettingsOverridePackages = [ pkgs.gnome-settings-daemon ]; - favoriteAppsOverride = '' - [org.gnome.shell] - favorite-apps=[ 'org.gnome.Epiphany.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop' ] - ''; - }; - }; - - # Essential Utilities - environment.systemPackages = with pkgs; [ - gnome-console - gnome-text-editor - gnome-system-monitor - nautilus - ]; - - # Excluded Packages - services.gnome = { - core-utilities.enable = mkForce false; - gnome-browser-connector.enable = mkForce false; - gnome-remote-desktop.enable = mkForce false; - gnome-user-share.enable = mkForce false; - }; - - environment.gnome.excludePackages = with pkgs; [ - gnome-tour - hicolor-icon-theme - ]; -} diff --git a/modules/gui/desktop/gnome/settings/apps.nix b/modules/gui/desktop/gnome/settings/apps.nix @@ -128,6 +128,13 @@ in "org.gnome.Sudoku.desktop" "org.gnome.Mines.desktop" "org.gnome.Quadrapassel.desktop" + "osu!.desktop" + "org.prismlauncher.PrismLauncher.desktop" + "steam.desktop" + "Steam Linux Runtime 1.0 (scout).desktop" + "Steam Linux Runtime 2.0 (soldier).desktop" + "Steam Linux Runtime 3.0 (sniper).desktop" + "Proton Hotfix.desktop" ]; }; @@ -152,11 +159,15 @@ in name = "Utilities"; apps = [ "cups.desktop" + "kvantummanager.desktop" + "micro.desktop" "nixos-manual.desktop" "org.gnome.baobab.desktop" "org.gnome.Console.desktop" "org.gnome.Devhelp.desktop" + "org.gnome.dspy.desktop" "org.gnome.Logs.desktop" + "org.gnome.Sysprof.desktop" "org.gnome.Tour.desktop" "xterm.desktop" "yelp.desktop" @@ -187,8 +198,9 @@ in apps = [ "7zip.desktop" "com.usebottles.bottles.desktop" - "Notepad++.desktop" "net.lutris.Lutris.desktop" + "Notepad++.desktop" + "winetricks.desktop" ]; }; diff --git a/modules/gui/desktop/gnome/settings/extensions.nix b/modules/gui/desktop/gnome/settings/extensions.nix @@ -36,7 +36,6 @@ let { package = control-monitor-brightness-and-volume-with-ddcutil; } { package = disconnect-wifi; } { package = display-configuration-switcher; } - { package = gamemode-indicator-in-system-settings; } { package = gsconnect; } { package = guillotine; } { package = hide-minimized; } @@ -49,7 +48,6 @@ let { package = unmess; } { package = window-state-manager; } { package = x11-gestures; } - { package = xlanguagetray; } { package = workspace-indicator; disable = true; @@ -80,6 +78,7 @@ let "vitalsMenu" "dwellClick" "color-picker@tuberry" + "gamemodeshellextension@trsnaqe.com" "lockkeys" "keyboard" "screenSharing" @@ -89,12 +88,17 @@ let }; } { + package = status-area-horizontal-spacing; + settings.hpadding = 4; + } + { package = color-picker; settings.enable-format = true; } { - package = status-area-horizontal-spacing; - settings.hpadding = 4; + package = gamemode-shell-extension; + name = "gamemodeshellextension"; + settings.show-icon-only-when-active = true; } { package = lock-keys; @@ -247,7 +251,7 @@ let }; } { - package = pkgs.custom.gnome-pano; + package = pano; settings = { database-location = "${homeDir}/.local/share/clipboard"; history-length = 250; @@ -445,7 +449,7 @@ let } { package = gtk4-desktop-icons-ng-ding; - disable = true; # !# Currently buggy + disable = true; # ! # Currently buggy settings = { dark-text-in-labels = false; show-drop-place = false; diff --git a/modules/gui/desktop/hyprland/apps/launcher.nix b/modules/gui/desktop/hyprland/apps/launcher.nix @@ -12,12 +12,11 @@ programs.hyprshell = { enable = true; systemd.enable = true; - style = util.build.theme { + styleFile = util.build.theme { inherit (config.lib.stylix) colors; file = files.hyprland.hyprshell; }; - declarative = true; settings = { layerrules = false; @@ -28,8 +27,8 @@ max_items = 10; plugins = { applications = { - cache = 4; - execs = true; + run_cache_weeks = 4; + show_execs = true; }; websearch.engines = [ { @@ -41,7 +40,7 @@ }; }; - window = { + windows = { scale = 9.0; workspaces_per_row = 3; strip_html_from_workspace_title = true; @@ -53,23 +52,19 @@ }; navigate = { forward = "tab"; - reverse = "Mod(shift)"; - }; - filter = { - hide = false; - by = [ ]; + reverse.mod = "shift"; }; }; - switcher = { + switch = { open.modifier = "alt"; navigate = { forward = "tab"; - reverse = "Mod(shift)"; + reverse.mod = "shift"; }; - filter = { - hide = true; - by = [ "current_workspace" ]; + other = { + hide_filtered = true; + filter_by = [ "current_workspace" ]; }; }; }; diff --git a/modules/gui/desktop/hyprland/apps/settings.nix b/modules/gui/desktop/hyprland/apps/settings.nix @@ -21,7 +21,6 @@ in stylix.base16Scheme = files.colors.catppuccin; environment.systemPackages = [ pkgs.custom.cursors ]; gui = with theme; { - fonts.enable = true; inherit (theme) icons; gtk = { diff --git a/modules/gui/desktop/hyprland/apps/terminal.nix b/modules/gui/desktop/hyprland/apps/terminal.nix @@ -32,18 +32,11 @@ }; }; + home.file.".config/kitty/search".source = pkgs.custom.kitty-search; wayland.windowManager.hyprland.settings.misc.swallow_regex = "^(kitty)$"; stylix.targets.kitty = { enable = true; variant256Colors = true; }; - - home.file = { - ".config/kitty/search".source = pkgs.custom.kitty-search; - ".config/xfce4/helpers.rc".text = '' - TerminalEmulator=kitty - TerminalEmulatorDismissed=true - ''; - }; }; } diff --git a/modules/gui/desktop/hyprland/apps/utilities.nix b/modules/gui/desktop/hyprland/apps/utilities.nix @@ -43,7 +43,6 @@ in wl-clipboard wl-screenrec wlr-randr - xfce.exo # Network Settings (gnome-control-center.overrideAttrs (old: { diff --git a/modules/gui/desktop/hyprland/default.nix b/modules/gui/desktop/hyprland/default.nix @@ -27,11 +27,6 @@ in ++ [ ## Environment Setup rec { - gui = { - xorg.enable = false; - wayland.enable = true; - }; - programs = { # WM hyprland = { @@ -59,8 +54,8 @@ in }; }; + # Session services = { - # Session displayManager.defaultSession = "Desktop"; xserver = { desktopManager.runXdgAutostartIfNone = true; diff --git a/modules/gui/desktop/install.nix b/modules/gui/desktop/install.nix @@ -0,0 +1,85 @@ +{ + config, + lib, + pkgs, + ... +}@args: +let + inherit (lib) + mkIf + mkForce + mkMerge + ; +in +{ + ## GNOME Configuration ## + config = mkIf (config.gui.desktop == "iso") (mkMerge [ + (import ./gnome/common.nix args) + + { + services.xserver = { + displayManager.gdm = { + banner = "Install Media"; + autoSuspend = false; + }; + + desktopManager.gnome = { + extraGSettingsOverridePackages = [ pkgs.gnome-settings-daemon ]; + favoriteAppsOverride = '' + [org.gnome.shell] + favorite-apps=[ 'org.gnome.Epiphany.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop' ] + ''; + + extraGSettingsOverrides = '' + [org.gnome.shell] + welcome-dialog-last-shown-version='9999999999' + + [org.gnome.desktop.session] + idle-delay=0 + + [org.gnome.settings-daemon.plugins.power] + sleep-inactive-ac-type='nothing' + sleep-inactive-battery-type='nothing' + ''; + }; + }; + + # Essential Utilities + environment.systemPackages = with pkgs; [ + gparted + epiphany + gnome-console + gnome-system-monitor + gnome-text-editor + nautilus + ]; + + # Excluded Packages + services.gnome = { + core-apps.enable = mkForce false; + gnome-browser-connector.enable = mkForce false; + gnome-remote-desktop.enable = mkForce false; + gnome-user-share.enable = mkForce false; + rygel.enable = mkForce false; + }; + + environment.gnome.excludePackages = with pkgs; [ + gnome-backgrounds + gnome-tour + gnome-user-docs + ]; + + # Disable suspension + security.polkit.extraConfig = '' + polkit.addRule(function(action, subject) { + if (action.id == "org.freedesktop.login1.suspend" || + action.id == "org.freedesktop.login1.suspend-multiple-sessions" || + action.id == "org.freedesktop.login1.hibernate" || + action.id == "org.freedesktop.login1.hibernate-multiple-sessions") { + return polkit.Result.NO; + } + }); + ''; + } + ]); +} diff --git a/modules/gui/desktop/iso.nix b/modules/gui/desktop/iso.nix @@ -1,4 +0,0 @@ -[ - "gnome" - "xfce" -] diff --git a/modules/gui/desktop/pantheon/default.nix b/modules/gui/desktop/pantheon/default.nix @@ -6,25 +6,27 @@ files, ... }: -with files; let inherit (config.gui) desktop; exists = app: builtins.elem app config.apps.list; - inherit (lib) mkIf mkMerge; + inherit (lib) + getExe + mkIf + mkMerge + ; in { ## Pantheon Desktop Configuration ## config = mkIf (desktop == "pantheon") (mkMerge [ - ## Environment Setup { # Session - services.xserver.desktopManager.pantheon.enable = true; - } + services.xserver = { + enable = true; + desktopManager.pantheon.enable = true; + }; - { # Desktop Integration gui = { - fonts.enable = true; gtk = { enable = true; theme = { @@ -45,28 +47,26 @@ in }; }; + # Color Scheme + stylix.base16Scheme = files.colors.elementary; + # Essential Utilities apps.list = [ "firefox" ]; services.pantheon.apps.enable = true; # Panel Indicators + environment.pathsToLink = [ "/libexec" ]; services.xserver.desktopManager.pantheon.extraWingpanelIndicators = with pkgs; [ - monitor + # monitor # ! # https://github.com/NixOS/nixpkgs/issues/408811 wingpanel-indicator-ayatana ]; - environment = { - # Panel Indicator Compatibility - pathsToLink = [ "/libexec" ]; - - # Apps - systemPackages = with pkgs.pantheon // pkgs; [ - appeditor - gthumb - pantheon-tweaks - torrential - ]; - }; + # Apps + environment.systemPackages = with pkgs.pantheon // pkgs; [ + appeditor + pantheon-tweaks + torrential + ]; # Persisted Files user.persist.directories = [ @@ -75,19 +75,15 @@ in ".config/torrential" ".local/share/contractor" ".local/share/evolution" + ".local/share/Emote" ".local/share/io.elementary.code" ".local/share/io.elementary.photos" ".cache/evolution" ".cache/io.elementary.appcenter" ]; - # Color Scheme - stylix.base16Scheme = colors.elementary; - } - - ## User Configuration - { user.homeConfig = { + ## Desktop Settings imports = [ ./settings.nix ]; stylix.targets.gnome.enable = false; @@ -102,27 +98,30 @@ in video = [ "io.elementary.videos.desktop" ]; }; - # App Indicator Autostart - systemd.user.services.indicator-application-gtk3 = { - Unit.Description = "Application Indicator"; - Install.wantedBy = [ "graphical-session.target" ]; - Service = { - Type = "Simple"; - ExecStart = "${pkgs.indicator-application-gtk3}/libexec/indicator-application/indicator-application-service"; + systemd.user.services = { + # App Indicator + indicator-application-gtk3 = { + Unit.Description = "Application Indicator"; + Install.wantedBy = [ "graphical-session.target" ]; + Service = { + Type = "Simple"; + ExecStart = "${pkgs.indicator-application-gtk3}/libexec/indicator-application/indicator-application-service"; + }; + }; + + # Emoji Picker + emote = { + Unit.Description = "Emote Emoji Picker"; + Install.WantedBy = [ "graphical-session.target" ]; + Service = { + ExecStart = "${getExe pkgs.emote}"; + Restart = "on-failure"; + }; }; }; home = { file = { - # Plank Dock - ".config/autostart/Dock.desktop".text = plank.autostart; - ".local/share/plank/themes/default/dock.theme".text = plank.theme; - ".config/plank/dock1/launchers" = { - source = plank.launchers; - recursive = true; - force = true; - }; - # Firefox Elementary Theme ".mozilla/firefox/default/chrome/userChrome.css".source = "${pkgs.custom.firefox-elementary}/Windows/userChrome.css"; @@ -135,7 +134,7 @@ in [Desktop Entry] Name=IBus Daemon Type=Application - Exec=${pkgs.ibus}/bin/ibus-daemon --daemonize --desktop=pantheon --replace --xim + Exec=ibus-daemon --daemonize --desktop=pantheon --replace --xim Categories= Terminal=false NoDisplay=true @@ -146,7 +145,7 @@ in [Desktop Entry] Name=Monitor Indicators Type=Application - Exec=/run/current-system/sw/bin/com.github.stsdc.monitor --start-in-background + Exec=com.github.stsdc.monitor --start-in-background Icon=com.github.stsdc.monitor Categories= Terminal=false @@ -169,7 +168,7 @@ in }; }; - # Flatpak Apps + # Flatpak warnings = [ "Flatpak app support is enabled by default while using Pantheon Desktop" ]; apps.list = [ "flatpak" ]; services.flatpak = { diff --git a/modules/gui/desktop/pantheon/settings.nix b/modules/gui/desktop/pantheon/settings.nix @@ -13,18 +13,25 @@ in # Generated via nix-community/dconf2nix # Use 'dconf watch /' to record changes dconf.settings = { - # Desktop - "io/elementary/desktop/agent-geoclue2".location-enabled = true; + # Panel "io/elementary/desktop/wingpanel".use-transparency = true; - "io/elementary/desktop/wingpanel/a11y".show-indicator = true; - "io/elementary/desktop/wingpanel/datetime".clock-format = "24h"; "io/elementary/desktop/wingpanel/sound".max-volume = 100.0; "io/elementary/desktop/wingpanel/power".show-percentage = true; "io/elementary/desktop/wingpanel/bluetooth".bluetooth-enabled = false; - "io/elementary/switchboard/keyboard".first-launch = false; - "io/elementary/files/preferences".singleclick-select = false; - "io/elementary/settings-daemon/datetime".show-weeks = true; + "io/elementary/wingpanel/keyboard" = { + show-a11y = true; + capslock = true; + numlock = true; + }; + + # Desktop + "io/elementary/desktop/agent-geoclue2".location-enabled = true; + "io/elementary/settings-daemon/power".profile-plugged-in = "performance"; + "io/elementary/notifications/applications/gala-other" = { + remember = true; + sounds = true; + }; "org/gnome/desktop/session".idle-delay = mkUint32 900; "org/gnome/desktop/a11y/keyboard".togglekeys-enable = true; @@ -47,17 +54,18 @@ in picture-uri-dark = picture-uri; }; - "io/elementary/notifications/applications/gala-other" = { - remember = true; - sounds = true; - }; - "org/gnome/desktop/sound" = { allow-volume-above-100-percent = false; event-sounds = true; theme-name = "elementary"; }; + "org/gnome/desktop/peripherals/touchpad" = { + click-method = "fingers"; + tap-to-click = true; + two-finger-scrolling-enabled = true; + }; + "org/gnome/settings-daemon/plugins/power" = { power-button-action = "interactive"; sleep-inactive-ac-timeout = 0; @@ -65,12 +73,6 @@ in sleep-inactive-battery-timeout = 1800; }; - "org/gnome/desktop/peripherals/touchpad" = { - click-method = "fingers"; - tap-to-click = true; - two-finger-scrolling-enabled = true; - }; - "org/gnome/settings-daemon/plugins/color" = { night-light-enabled = true; night-light-schedule-automatic = false; @@ -82,17 +84,22 @@ in "io/elementary/settings-daemon/housekeeping" = { cleanup-downloads-folder = false; cleanup-screenshots-folder = false; - old-files-age = 30; + cleanup-temp-folder = true; + cleanup-trash-folder = true; + old-files-age = 7; }; # Window Manager - "org/pantheon/desktop/gala/appearance".button-layout = ":minimize,maximize,close"; - "org/gnome/desktop/wm/preferences".titlebar-font = "${head fonts.sansSerif} Bold 11"; + "org/gnome/desktop/wm/preferences" = { + button-layout = ":minimize,maximize,close"; + titlebar-font = "${head fonts.sansSerif} Bold 11"; + }; - "org/pantheon/desktop/gala/behavior" = { + "io/elementary/desktop/wm/behavior" = { hotcorner-bottomleft = "show-workspace-view"; hotcorner-bottomright = "switch-to-workspace-next"; hotcorner-topleft = "open-launcher"; + move-fullscreened-workspace = true; }; "org/gnome/mutter" = { @@ -110,7 +117,34 @@ in toggle-tiled-right = [ ]; }; + # Dock + "io/elementary/dock" = { + autohide-mode = "overlapping-focus-window"; + icon-size = 48; + launchers = [ + "gala-multitaskingview.desktop" + "google-chrome.desktop" + "io.elementary.mail.desktop" + "io.elementary.terminal.desktop" + "io.elementary.files.desktop" + "io.elementary.code.desktop" + "io.elementary.settings.desktop" + ]; + }; + + # Gestures + "io/elementary/desktop/wm/gestures" = { + three-finger-swipe-horizontal = "switch-to-workspace"; + four-finger-swipe-horizontal = "move-to-workspace"; + three-finger-swipe-up = "multitasking-view"; + four-finger-swipe-up = "toggle-maximized"; + four-finger-pinch = "zoom"; + }; + # Apps + "io/elementary/files/preferences".singleclick-select = false; + "org/gtk/settings/file-chooser".sort-directories-first = true; + "desktop/ibus/panel/emoji".font = "${head fonts.emoji} 16"; "desktop/ibus/panel" = { show-icon-on-systray = false; @@ -129,12 +163,6 @@ in indicator-temperature-state = true; }; - "org/gnome/epiphany" = { - ask-for-default = false; - default-search-engine = "Google"; - use-google-search-suggestions = true; - }; - "io/elementary/terminal/settings" = { audible-bell = false; follow-last-tab = "true"; @@ -143,15 +171,6 @@ in unsafe-paste-alert = true; }; - "net/launchpad/plank/docks/dock1" = { - current-workspace-only = true; - icon-size = 60; - pressure-reveal = true; - theme = "default"; - zoom-enabled = true; - zoom-percent = 120; - }; - "io/elementary/code/saved-state".outline-visible = true; "io/elementary/code/settings" = { autosave = false; @@ -168,6 +187,12 @@ in ]; }; + "org/gnome/epiphany" = { + ask-for-default = false; + default-search-engine = "Google"; + use-google-search-suggestions = true; + }; + "com/github/hezral/clips" = { first-run = false; hide-on-startup = true; @@ -252,14 +277,15 @@ in "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/" ]; }; - "org/pantheon/desktop/gala/keybindings" = { + "io/elementary/desktop/wm/keybindings" = { area-screenshot = [ "Print" ]; + screenshot = [ "<Shift>Print" ]; expose-windows = [ "" ]; pip = [ "" ]; - screenshot = [ "<Shift>Print" ]; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { @@ -286,23 +312,10 @@ in command = "gtk-launch com.github.hezral.clips"; }; - # Gestures - "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/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = { + name = "Emoji Picker"; + binding = "<Super>comma"; + command = "emote"; }; }; } diff --git a/modules/gui/desktop/xfce/compositor.nix b/modules/gui/desktop/xfce/compositor.nix @@ -1,151 +0,0 @@ -{ - lib, - pkgs, - ... -}: -{ - ## Picom Compositor Configuration ## - services.picom = rec { - enable = true; - package = pkgs.picom; - - # Driver - backend = "egl"; - vSync = true; - - # Shadows - shadow = true; - shadowExclude = [ - "name = 'cpt_frame_xcb_window'" - "class_g ?= 'zoom'" - "name *= 'Chrome'" - "class_g = 'firefox' && argb" - "class_g = 'thunderbird' && argb" - "_NET_WM_STATE@[*]:a = '_NET_WM_STATE_HIDDEN'" - ]; - - # Opacity - opacityRules = [ "95:class_g = 'Code'" ]; - wintypes = { - tooltip.opacity = 0.8; - popup_menu.opacity = 0.9; - dropdown_menu.opacity = 0.9; - }; - - settings = - # Behaviour - { - inactive-dim = 0.1; - corner-radius = 10.0; - detect-client-opacity = true; - focus-exclude = - [ - "fullscreen" - "_NET_WM_STATE@[*]:a ^= '_NET_WM_STATE_MAXIMIZED'" - ] - ++ [ - "class_g='Xfwm4'" - "class_g='Xfce4-panel'" - ]; - } - # Fade - // { - fading = true; - fade-in-step = 0.03; - fade-out-step = 0.1; - fade-delta = 15; - no-fading-openclose = false; - } - # Blur - // { - blur-method = "dual_kawase"; - blur-strength = 3; - blur-background-exclude = shadowExclude; - } - # Animation - // { - animations = [ - { - triggers = [ - "close" - "hide" - ]; - preset = "disappear"; - scale = 0.4; - opacity = { - duration = 0.4; - start = "window-raw-opacity-before"; - end = 0; - }; - blur-opacity = "opacity"; - shadow-opacity = "opacity"; - } - { - triggers = [ - "open" - "show" - ]; - opacity = { - curve = "cubic-bezier(0.3,1.0,0.4,1)"; - duration = 0.4; - start = 0; - end = "window-raw-opacity"; - }; - blur-opacity = "opacity"; - shadow-opacity = "opacity"; - offset-x = "(1 - scale-x) / 2 * window-width"; - offset-y = "(1 - scale-y) / 2 * window-height"; - scale-x = { - curve = "cubic-bezier(0.3,1.0,0.4,1)"; - duration = 0.4; - start = 0; - end = 1; - }; - scale-y = "scale-x"; - shadow-scale-x = "scale-x"; - shadow-scale-y = "scale-y"; - shadow-offset-x = "offset-x"; - shadow-offset-y = "offset-y"; - } - { - triggers = [ "geometry" ]; - scale-x = { - curve = "cubic-bezier(0.3,1.0,0.4,1)"; - duration = 0.4; - start = "window-width-before / window-width"; - end = 1; - }; - scale-y = { - curve = "cubic-bezier(0.3,1.0,0.4,1)"; - duration = 0.4; - start = "window-height-before / window-height"; - end = 1; - }; - offset-x = { - curve = "cubic-bezier(0.3,1.0,0.4,1)"; - duration = 0.4; - start = "window-x-before - window-x"; - end = 0; - }; - offset-y = { - curve = "cubic-bezier(0.3,1.0,0.4,1)"; - duration = 0.4; - start = "window-y-before - window-y"; - end = 0; - }; - - shadow-scale-x = "scale-x"; - shadow-scale-y = "scale-y"; - shadow-offset-x = "offset-x"; - shadow-offset-y = "offset-y"; - } - ]; - }; - }; - - # Theme Fixes - user.homeConfig = { - gtk.gtk3.extraCss = lib.mkBefore "decoration { box-shadow: none; }"; - programs.firefox.profiles.default.settings."browser.tabs.inTitlebar" = 0; - }; -} diff --git a/modules/gui/desktop/xfce/default.nix b/modules/gui/desktop/xfce/default.nix @@ -1,246 +0,0 @@ -{ - config, - lib, - util, - pkgs, - files, - ... -}@args: -with files; -let - inherit (lib) hasPrefix mkIf mkMerge; - exists = app: builtins.elem app config.apps.list; - inherit (config.gui) - desktop - display - fancy - icons - wallpaper - ; - - # GTK+ Theme - theme = { - name = "Arc-Dark"; - package = pkgs.arc-theme; - }; -in -{ - ## XFCE Configuration ## - config = mkIf (hasPrefix "xfce" desktop) (mkMerge [ - { - # Session - services = { - displayManager.defaultSession = "xfce"; - xserver = { - desktopManager.xfce = { - enable = true; - enableXfwm = true; - }; - - displayManager.lightdm.greeters.gtk = { - clock-format = "%H:%M"; - indicators = [ - "~a11y" - "~language" - "~spacer" - "~clock" - "~spacer" - "~host" - "~spacer" - "~session" - "~power" - ]; - }; - }; - }; - } - - ## Install Media Configuration - (mkIf (desktop == "xfce-iso") (import ./iso.nix args)) - - ## Desktop Configuration - (mkIf (desktop == "xfce" && fancy) (import ./compositor.nix args)) - (mkIf (desktop == "xfce") { - # Desktop Components - gui = { - fonts.enable = true; - gtk = { - enable = true; - inherit theme; - }; - - qt = { - enable = true; - style = "kvantum"; - theme = { - name = "KvArcDark"; - package = pkgs.arc-kde-theme; - }; - }; - }; - - # Essential Utilities - xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - services = { - blueman.enable = true; - touchegg.enable = true; - xserver.displayManager.lightdm.greeters.gtk = { inherit theme; }; - }; - - programs = { - xfconf.enable = true; - thunar = { - enable = true; - plugins = with pkgs.xfce; [ - thunar-archive-plugin - thunar-dropbox-plugin - thunar-volman - ]; - }; - }; - - # Utilities - environment.systemPackages = with pkgs.xfce // pkgs; [ - galculator - file-roller - mate.atril - orage - pavucontrol - system-config-printer - transmission_3-gtk - xorg.xkill - - xfce4-clipman-plugin - xfce4-docklike-plugin - xfce4-eyes-plugin - xfce4-notes-plugin - xfce4-panel-profiles - xfce4-pulseaudio-plugin - xfce4-sensors-plugin - xfce4-timer-plugin - xfce4-weather-plugin - xfce4-whiskermenu-plugin - xfce4-windowck-plugin - (writeShellApplication { - name = "xfce4-panel-toggle"; - runtimeInputs = [ xfce.xfconf ]; - text = '' - for num in {0,1} - do - current=$(xfconf-query -c xfce4-panel -p /panels/panel-"$num"/autohide-behavior) - if [[ current -eq 1 ]]; then next=0; else next=1; fi - xfconf-query -c xfce4-panel -p /panels/panel-"$num"/autohide-behavior -s $next - done - ''; - }) - ]; - - # Persisted Files - user.persist.directories = [ - ".config/Mousepad" - ".config/Thunar" - ".config/xfce4" - ".cache/xfce4" - ]; - - # Color Scheme - stylix.base16Scheme = colors.arc; - - ## User Configuration - user.homeConfig = { - # GTK+ Theming - stylix.targets.xfce.enable = false; - gtk = { - gtk3.extraCss = xfce.css; - }; - - # Default Applications - xdg.mimeApps.defaultApplications = util.build.mime { - archive = [ "org.gnome.FileRoller.desktop" ]; - audio = [ "org.xfce.Parole.desktop" ]; - calendar = [ "org.xfce.orage.desktop" ]; - directory = [ "thunar.desktop" ]; - image = [ "org.xfce.ristretto.desktop" ]; - magnet = [ "transmission-gtk.desktop" ]; - pdf = [ "atril.desktop" ]; - text = [ "org.xfce.mousepad.desktop" ]; - video = [ "org.xfce.Parole.desktop" ]; - }; - - home.file = - { - # Touchpad Gestures - ".config/touchegg/touchegg.conf".text = gestures; - } - # Desktop Settings - // util.map.folder { - directory = xfce.panel; - path = ".config/xfce4/panel"; - extension = ".rc"; - apply = text: { inherit text; }; - replace = { - placeholders = [ "@font" ]; - values = [ config.stylix.fonts.sansSerif.name ]; - }; - } - // util.map.folder { - inherit (xfce.settings) directory; - path = ".config/xfce4/xfconf/xfce-perchannel-xml"; - extension = ".xml"; - apply = text: { - inherit text; - force = true; - }; - replace = { - placeholders = [ - "@system" - "@display" - "@wallpaper" - "@theme" - "@icons" - "@cursor" - "@font" - "@monospace" - "@compositor" - ]; - values = [ - path.system - display - wallpaper - theme.name - icons.name - config.stylix.cursor.name - config.stylix.fonts.sansSerif.name - config.stylix.fonts.monospace.name - (if fancy then "false" else "true") - ]; - }; - }; - }; - }) - - ## 3rd Party Apps Configuration - (mkIf (desktop == "xfce") { - user.homeConfig = { - # 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');"}''; - }; - - 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/modules/gui/desktop/xfce/iso.nix b/modules/gui/desktop/xfce/iso.nix @@ -1,20 +0,0 @@ -{ - lib, - pkgs, - ... -}: -let - inherit (lib) mkForce; -in -{ - # Excluded Packages - environment.xfce.excludePackages = with (pkgs.xfce // pkgs); [ - tango-icon-theme - xfce4-icon-theme - xfwm4-themes - ]; - - # Disabled Services - services.tumbler.enable = mkForce false; - services.accounts-daemon.enable = mkForce false; -} diff --git a/modules/gui/theme.nix b/modules/gui/theme.nix @@ -9,7 +9,6 @@ let inherit (lib) attrNames - hasSuffix mkIf mkOption optionals @@ -17,7 +16,7 @@ let ; cfg = config.gui; - enable = !(cfg.desktop == "" || hasSuffix "-iso" cfg.desktop); + enable = cfg.desktop != "" && cfg.desktop != "install"; exists = app: builtins.elem app config.apps.list; in { diff --git a/modules/gui/wayland.nix b/modules/gui/wayland.nix @@ -1,24 +0,0 @@ -{ - config, - lib, - ... -}: -{ - options.gui.wayland.enable = lib.mkEnableOption "Enable Wayland Configuration"; - - ## Wayland Configuration ## - config = lib.mkIf config.gui.wayland.enable { - # Environment Setup - environment.sessionVariables = { - "NIXOS_OZONE_WL" = "1"; - "MOZ_ENABLE_WAYLAND" = "1"; - "QT_QPA_PLATFORM" = "wayland;xcb"; - "GDK_BACKEND" = "wayland,x11"; - "CLUTTER_BACKEND" = "wayland"; - }; - - # Programs Support - xdg.portal.wlr.enable = true; - programs.xwayland.enable = true; - }; -} diff --git a/modules/gui/xorg.nix b/modules/gui/xorg.nix @@ -1,43 +0,0 @@ -{ lib, ... }: -let - inherit (lib) - mkDefault - mkForce - mkOption - types - ; -in -{ - options.gui.xorg.enable = mkOption { - description = "Enable X11 Server Configuration"; - type = types.bool; - default = true; - }; - - ## X11 Server Configuration ## - config = { - services.xserver = { - enable = true; - autorun = true; - - # Driver Settings - videoDrivers = mkDefault [ "modesetting" ]; - }; - - user.homeConfig.xresources.extraConfig = '' - Xft.antialias: 1 - Xft.autohint: 0 - Xft.hinting: 1 - Xft.hintstyle: hintslight - Xft.lcdfilter: lcddefault - Xft.rgba: rgb - ''; - - # System Specialisation - specialisation.xorg.configuration = { - system.nixos.label = "special.xorg"; - gui.wayland.enable = mkForce false; - hardware.vm.android.enable = mkForce false; - }; - }; -} diff --git a/modules/hardware/mobile.nix b/modules/hardware/mobile.nix @@ -21,6 +21,6 @@ in scrcpy ]; - #!# Run 'systemctl restart usbmuxd.service' if it doesn't work + # ? # Run 'systemctl restart usbmuxd.service' if it doesn't work }; } diff --git a/modules/hardware/virtualisation/android.nix b/modules/hardware/virtualisation/android.nix @@ -13,16 +13,6 @@ in ## Android Virtualisation ## config = mkIf config.hardware.vm.android.enable { - assertions = [ - { - assertion = config.gui.wayland.enable; - message = '' - Wayland support is required - - Use a DE that supports Wayland - ''; - } - ]; - warnings = optional (config.boot.kernelPackages != options.boot.kernelPackages.default) '' Android Virtualisation may not work - Kernel may not have requisite 'binder' module @@ -32,7 +22,7 @@ in virtualisation.waydroid.enable = true; environment.systemPackages = [ pkgs.wl-clipboard ]; - #!# Run 'waydroid init -s GAPPS -f' to install system image + # ? # Run 'waydroid init -s GAPPS -f' to install system image # Environment Setup users.groups.android = { diff --git a/modules/hardware/virtualisation/default.nix b/modules/hardware/virtualisation/default.nix @@ -39,7 +39,7 @@ in virtiofsd ]; - #!# Run 'virsh net-start default' to start virtual network service + # ? # Run 'virsh net-start default' to start virtual network service # VM Utilities virtualisation = { diff --git a/modules/shell/default.nix b/modules/shell/default.nix @@ -6,7 +6,6 @@ files, ... }: -with files; let inherit (util.map) modules; inherit (builtins) listToAttrs map; @@ -39,7 +38,7 @@ in } (mkIf config.shell.utilities { - environment = { + environment = with files; { # Utilities systemPackages = with pkgs; [ bat diff --git a/modules/shell/prompt.nix b/modules/shell/prompt.nix @@ -28,10 +28,10 @@ var, color, style ? "fg:white", - end ? "[${close}](fg:base04)", + end ? "[${close}](fg:base03)", ... }: - "[─](fg:base04)[${open}](fg:${color})[${icon}](fg:base01 bg:${color})[${close}](fg:${color} bg:base04)[ ${var}](${style} bg:base04)${end}"; + "[─](fg:base04)[${open}](fg:${color})[${icon}](fg:base01 bg:${color})[${close}](fg:${color} bg:base03)[ ${var}](${style} bg:base03)${end}"; in { enable = true; @@ -83,7 +83,7 @@ git_status = { disabled = false; - format = "[$ahead_behind$all_status](fg:green bg:base04)[${close}](fg:base04)"; + format = "[$ahead_behind$all_status](fg:green bg:base03)[${close}](fg:base03)"; ahead = " ⇡$count"; behind = " ⇣$count"; diverged = " ⇡$ahead_count ⇣$behind_count"; @@ -157,7 +157,6 @@ bright-black = base03; white = base05; bright-white = base07; - bright-yellow = yellow; purple = magenta; bright-purple = bright-magenta; inherit @@ -173,8 +172,8 @@ bright-cyan bright-green bright-magenta - bright-orange bright-red + bright-yellow base00 base01 base02 diff --git a/packages/flake.nix b/packages/flake.nix @@ -1,4 +1,5 @@ { + self, util, inputs, ... @@ -24,47 +25,31 @@ in legacyPackages = with inputs; let - # Channel Configuration - src = nixpkgs; + # Package Configuration config = import ../modules/nix/config.nix; - - # Channel Patches - patches = map.patches ./patches; - pkgs' = import src { inherit system; }; in - ( - if !(any isPath patches) then - import src - else - import ( - pkgs'.applyPatches { - inherit src patches; - name = "nixpkgs-patched-${src.shortRev}"; - } - ) - ) - { - inherit system config; + import (self.patchedPkgs system) { + inherit system config; - # Package Overrides - overlays = (attrValues self.overlays or { }) ++ [ - (_: _: { - custom = self.packages."${system}"; - unstable = import unstable { inherit system config; }; + # Package Overrides + overlays = (attrValues self.overlays or { }) ++ [ + (_: _: { + custom = self.packages."${system}"; + unstable = import unstable { inherit system config; }; - code = vscode.extensions."${system}"; - gaming = gaming.packages."${system}"; - wine = windows.packages."${system}"; - hyprworld = - hyprland.packages."${system}" - // hyprplugins.packages."${system}" - // hyprsplit.packages."${system}" - // hyprcursors.packages."${system}" - // hyprspace.packages."${system}" - // hyprdark.packages."${system}"; - }) - ]; - }; + code = vscode.extensions."${system}"; + gaming = gaming.packages."${system}"; + wine = windows.packages."${system}"; + hyprworld = + hyprland.packages."${system}" + // hyprplugins.packages."${system}" + // hyprsplit.packages."${system}" + // hyprcursors.packages."${system}" + // hyprspace.packages."${system}" + // hyprdark.packages."${system}"; + }) + ]; + }; } // ( let @@ -90,6 +75,24 @@ in } ); - # Package Overrides - flake.overlays = map.modules ./overlays import; + flake = { + # Patched Source + patchedPkgs = + system: + let + src = inputs.nixpkgs; + patches = map.patches ./patches; + pkgs' = import src { inherit system; }; + in + if !(any isPath patches) then + src + else + pkgs'.applyPatches { + inherit src patches; + name = "nixpkgs-patched-${src.shortRev}"; + }; + + # Package Overrides + overlays = map.modules ./overlays import; + }; } diff --git a/packages/gnome-pano/default.nix b/packages/gnome-pano/default.nix @@ -1,49 +0,0 @@ -{ - lib, - pkgs, - ... -}: -with pkgs; -let - uuid = "pano@elhan.io"; -in -stdenv.mkDerivation rec { - pname = "pano"; - version = "v23-alpha5"; - src = fetchzip { - url = "https://github.com/oae/gnome-shell-pano/releases/download/${version}/${uuid}.zip"; - sha256 = "sha256-kTaJOSyFtBa/fl3Mot8Q8qyhwJwhcbBY4FvdztqUP4w="; - stripRoot = false; - }; - - patches = [ - (substituteAll { - src = ./imports.patch; - inherit gsound libgda5; - }) - ]; - - nativeBuildInputs = [ wrapGAppsHook ]; - buildInputs = [ - gnome-shell - libgda5 - gsound - ]; - installPhase = '' - mkdir -p $out/share/gnome-shell/extensions - cp -r -T . $out/share/gnome-shell/extensions/${uuid} - ''; - - passthru = { - extensionPortalSlug = pname; - extensionUuid = uuid; - }; - - meta = with lib; { - description = "Mext-gen GNOME Shell Clipboard Management Extension"; - homepage = "https://github.com/oae/gnome-shell-pano"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = [ "maydayv7" ]; - }; -} diff --git a/packages/gnome-pano/imports.patch b/packages/gnome-pano/imports.patch @@ -1,20 +0,0 @@ ---- /dev/null -+++ b/__nix-prepend-search-paths.js -@@ -0,0 +1,3 @@ -+import GIRepository from 'gi://GIRepository'; -+GIRepository.Repository.prepend_search_path('@gsound@/lib/girepository-1.0'); -+GIRepository.Repository.prepend_search_path('@libgda5@/lib/girepository-1.0'); ---- a/extension.js -+++ b/extension.js -@@ -1,3 +1,4 @@ -+import './__nix-prepend-search-paths.js'; - import Gio from 'gi://Gio'; - import GLib from 'gi://GLib'; - import * as extension_js from 'resource:///org/gnome/shell/extensions/extension.js'; ---- a/prefs.js -+++ b/prefs.js -@@ -1,3 +1,4 @@ -+import './__nix-prepend-search-paths.js'; - import { ExtensionPreferences } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; - import Gdk from 'gi://Gdk'; - import Gtk from 'gi://Gtk'; diff --git a/packages/patches/391574.patch b/packages/patches/391574.patch @@ -0,0 +1,46 @@ +From 46edf58124f5835009c96673c7a5498fbad29c2b Mon Sep 17 00:00:00 2001 +From: hustlerone <nine-ball@tutanota.com> +Date: Fri, 16 May 2025 20:31:30 +0200 +Subject: [PATCH] nixos,pkgs/kmscon: update package & modules to fix issues + +--- + nixos/modules/services/ttys/kmscon.nix | 4 +++- + pkgs/by-name/km/kmscon/package.nix | 6 +++--- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix +index 9706a384bffebd..0ca439c69ed206 100644 +--- a/nixos/modules/services/ttys/kmscon.nix ++++ b/nixos/modules/services/ttys/kmscon.nix +@@ -112,7 +112,9 @@ in + serviceConfig.ExecStart = [ + "" + '' +- ${pkgs.kmscon}/bin/kmscon "--vt=%I" ${cfg.extraOptions} --seats=seat0 --no-switchvt --configdir ${configDir} --login -- ${pkgs.shadow}/bin/login -p ${autologinArg} ++ ${pkgs.kmscon}/bin/kmscon "--vt=%I" ${cfg.extraOptions} ${ ++ lib.optionalString (!cfg.hwRender) "--no-drm" ++ } --seats=seat0 --no-switchvt --configdir ${configDir} --login -- ${pkgs.shadow}/bin/login -p ${autologinArg} + '' + ]; + +diff --git a/pkgs/by-name/km/kmscon/package.nix b/pkgs/by-name/km/kmscon/package.nix +index b0d67da025c6d1..97a88e396b9dd7 100644 +--- a/pkgs/by-name/km/kmscon/package.nix ++++ b/pkgs/by-name/km/kmscon/package.nix +@@ -21,13 +21,13 @@ + }: + stdenv.mkDerivation { + pname = "kmscon"; +- version = "9.0.0-unstable-2025-01-09"; ++ version = "9.0.0-unstable-2025-05-16"; + + src = fetchFromGitHub { + owner = "Aetf"; + repo = "kmscon"; +- rev = "a81941f4464e6f9cee75bfb8a1db88c253ede33d"; +- sha256 = "sha256-l7Prt7CsYi4VCnp9xktvqqNT+4djSdO2GvP1JdxhNSI="; ++ rev = "f4d9b6bbe3e176bbaf908bf25f40335283227f99"; ++ sha256 = "sha256-TY2kJfUU2DGWqqcVr2l5fETw69cmxZ5sNs/GSa8IccY="; + }; + + strictDeps = true; diff --git a/packages/patches/darkly.patch b/packages/patches/darkly.patch @@ -1,101 +0,0 @@ -From ebeba5c57e3d3132cf00c9668fc5257743f5278a Mon Sep 17 00:00:00 2001 -From: Leah Amelia Chen <hi@pluie.me> -Date: Mon, 23 Dec 2024 19:26:30 +0800 -Subject: [PATCH] darkly{-qt5}: init at 0.5.18 - ---- - pkgs/by-name/da/darkly-qt5/package.nix | 5 ++ - pkgs/by-name/da/darkly/package.nix | 72 ++++++++++++++++++++++++++ - 2 files changed, 77 insertions(+) - create mode 100644 pkgs/by-name/da/darkly-qt5/package.nix - create mode 100644 pkgs/by-name/da/darkly/package.nix - -diff --git a/pkgs/by-name/da/darkly-qt5/package.nix b/pkgs/by-name/da/darkly-qt5/package.nix -new file mode 100644 -index 00000000000000..de0113957bd498 ---- /dev/null -+++ b/pkgs/by-name/da/darkly-qt5/package.nix -@@ -0,0 +1,5 @@ -+{ -+ darkly, -+ libsForQt5, -+}: -+darkly.override { qtPackages = libsForQt5; } -diff --git a/pkgs/by-name/da/darkly/package.nix b/pkgs/by-name/da/darkly/package.nix -new file mode 100644 -index 00000000000000..ef6bac0bb9e706 ---- /dev/null -+++ b/pkgs/by-name/da/darkly/package.nix -@@ -0,0 +1,72 @@ -+{ -+ lib, -+ stdenv, -+ fetchFromGitHub, -+ cmake, -+ ninja, -+ kdePackages, -+ qtPackages ? kdePackages, -+ gitUpdater, -+}: -+let -+ qtMajorVersion = lib.versions.major qtPackages.qtbase.version; -+in -+stdenv.mkDerivation (finalAttrs: { -+ pname = "darkly-qt${qtMajorVersion}"; -+ version = "0.5.18"; -+ -+ src = fetchFromGitHub { -+ owner = "Bali10050"; -+ repo = "Darkly"; -+ tag = "v${finalAttrs.version}"; -+ hash = "sha256-IwN6eZusfeGIEtdubpJpp1wrzToi0Umwi9jbXc4AF90="; -+ }; -+ -+ nativeBuildInputs = [ -+ cmake -+ ninja -+ qtPackages.wrapQtAppsHook -+ qtPackages.extra-cmake-modules -+ ]; -+ -+ buildInputs = -+ with qtPackages; -+ [ -+ qtbase -+ kconfig -+ kcoreaddons -+ kcmutils -+ kguiaddons -+ ki18n -+ kiconthemes -+ kwindowsystem -+ ] -+ ++ lib.optionals (qtMajorVersion == "5") [ -+ kirigami2 -+ ] -+ ++ lib.optionals (qtMajorVersion == "6") [ -+ kcolorscheme -+ kdecoration -+ kirigami -+ ]; -+ -+ cmakeFlags = map (v: lib.cmakeBool "BUILD_QT${v}" (v == qtMajorVersion)) [ -+ "5" -+ "6" -+ ]; -+ -+ passthru.updateScript = gitUpdater { rev-prefix = "v"; }; -+ -+ meta = -+ { -+ description = "Modern style for Qt applications (fork of Lightly)"; -+ homepage = "https://github.com/Bali10050/Darkly"; -+ changelog = "https://github.com/Bali10050/Darkly/releases/tag/v${finalAttrs.version}"; -+ platforms = lib.platforms.linux; -+ license = with lib.licenses; [ gpl2Plus ]; -+ maintainers = with lib.maintainers; [ pluiedev ]; -+ } -+ // lib.optionalAttrs (qtMajorVersion == "6") { -+ mainProgram = "darkly-settings6"; -+ }; -+}) diff --git a/scripts/nixos.nix b/scripts/nixos.nix @@ -14,7 +14,6 @@ let inherit (lib) licenses recursiveUpdate; devShells = list self.devShells."${system}"; - installMedia = list self.installMedia; nixosConfigurations = list self.nixosConfigurations; # Usage Description @@ -31,7 +30,7 @@ let check [ --trace ] - Checks System Configuration [ Displays Error to Trace ] clean [ --all ] - Garbage Collects and Optimises Nix Store explore - Opens Interactive Shell to explore Syntax and Configuration - iso 'variant' [ --burn ] - Builds Image for Specified Install Media or Device [ Burns '.iso' to USB ] + iso 'variant' [ --burn ] - Builds Image for Specified Device [ Burns '.iso' to USB ] list [ 'pattern' ] - Lists all Installed Packages [ Returns Matches ] locate 'package' - Locates Installed Package run [ 'path' ] 'command' - Runs Specified Command [ from 'path' ] (Wraps 'nix run') @@ -82,7 +81,7 @@ recursiveUpdate meta = { mainProgram = "nixos"; description = "System Management Script"; - homepage = files.path.repo; + homepage = path.repo; license = licenses.gpl3Only; maintainers = [ "maydayv7" ]; }; @@ -248,18 +247,14 @@ recursiveUpdate ;; "iso") case $2 in - "") error "Expected a Variant of Install Media or Device";; + "") error "Expected a Device name";; *) - if grep -wq "$2" <<<"${installMedia}" &> /dev/null + if grep -wq "$2" <<<"${nixosConfigurations}" &> /dev/null then - echo "Building '$2' Install Media Image..." - nix build ${path.system}#installMedia."$2".config.system.build.isoImage && echo "The Image is located at './result/iso/nixos.iso'" - elif grep -wq "$2" <<<"${nixosConfigurations}" &> /dev/null - then - echo "Building '$2' Device Image..." - nix build ${path.system}#nixosConfigurations."$2".config.formats.iso + echo "Building '$2' Image..." + nix build ${path.system}#nixosConfigurations."$2".config.system.build.images.iso else - error "Unknown Variant '$2'" "# Available Variants #\n Install Media: ${installMedia}\n Devices: ${nixosConfigurations}" + error "Unknown Device '$2'" "# Available Devices #\n ${nixosConfigurations}" fi ;; esac @@ -268,7 +263,10 @@ recursiveUpdate "--burn") case $4 in "") error "Expected a 'path' to USB Drive";; - *) sudo dd if=./result/iso/nixos.iso of="$4" status=progress bs=1M;; + *) + IMAGE=$(find ./result/iso -type f -name "*.iso") + sudo dd if="$IMAGE" of="$4" status=progress bs=1M + ;; esac ;; *) error "Unknown Option '$3'";; diff --git a/shells/python.nix b/shells/python.nix @@ -6,7 +6,7 @@ pkgs: { (pkgs.python3.withPackages ( p: with p; [ pip - poetry + poetry-core setuptools black