First Commit. Config for thinkpad-p50 finished.
This commit is contained in:
commit
8d714192be
|
|
@ -0,0 +1 @@
|
|||
configuration.nix
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
# Import configuration files.
|
||||
imports = [
|
||||
# Choose the right hardware configuration
|
||||
# ./hardware-configuration/thinkpad-p50/configuration.nix
|
||||
# ./hardware-configuration/asus-desktop/configuration.nix
|
||||
./global-configuration.nix
|
||||
];
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
# Set the right version depending on your installation version.
|
||||
# system.stateVersion = "26.05";
|
||||
# system.stateVersion = "25.11";
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
# Import configuration files.
|
||||
imports = [
|
||||
./localisation-configuration.nix
|
||||
./packages.nix
|
||||
./users-configuration.nix
|
||||
];
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the GNOME Desktop Environment.
|
||||
services.displayManager.gdm.enable = true;
|
||||
services.desktopManager.gnome.enable = true;
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Nano configuration.
|
||||
programs.nano = {
|
||||
nanorc = ''
|
||||
set autoindent
|
||||
set linenumbers
|
||||
set mouse
|
||||
set tabstospaces
|
||||
set tabsize 4
|
||||
'';
|
||||
};
|
||||
|
||||
# Add nix experimental features.inherit
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Paris";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "fr_FR.UTF-8";
|
||||
i18n.supportedLocales = ["all"];
|
||||
/*
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "fr_FR.UTF-8";
|
||||
LC_IDENTIFICATION = "fr_FR.UTF-8";
|
||||
LC_MEASUREMENT = "fr_FR.UTF-8";
|
||||
LC_MONETARY = "fr_FR.UTF-8";
|
||||
LC_NAME = "fr_FR.UTF-8";
|
||||
LC_NUMERIC = "fr_FR.UTF-8";
|
||||
LC_PAPER = "fr_FR.UTF-8";
|
||||
LC_TELEPHONE = "fr_FR.UTF-8";
|
||||
LC_TIME = "fr_FR.UTF-8";
|
||||
};
|
||||
*/
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "fr";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Configure console keymap
|
||||
console.keyMap = "fr";
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{ ... }:
|
||||
|
||||
let
|
||||
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(import "${home-manager}/nixos")
|
||||
];
|
||||
|
||||
# Home-Manager configuration
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
{ ... }:
|
||||
|
||||
let
|
||||
# Import pkgs manualy to prevent infinite recursion.
|
||||
pkgs = import <nixpkgs> {};
|
||||
|
||||
# Fetch nix-flatpak.
|
||||
nix-flatpak = pkgs.fetchFromGitHub {
|
||||
owner = "gmodena";
|
||||
repo = "nix-flatpak";
|
||||
rev = "v0.7.0";
|
||||
hash = "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=";
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# Import the nix-flatpak NixOS module and install applications system wide.
|
||||
"${nix-flatpak}/modules/nixos.nix"
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./modules/nix-flatpak.nix
|
||||
];
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile.
|
||||
environment.systemPackages = with pkgs; [
|
||||
# System
|
||||
gsettings-desktop-schemas
|
||||
vulkan-tools
|
||||
|
||||
# Utilities
|
||||
gparted
|
||||
fastfetch
|
||||
cava
|
||||
dconf-editor
|
||||
krita
|
||||
|
||||
# Games
|
||||
prismlauncher
|
||||
|
||||
# Developement
|
||||
vscode # extensions configured by users
|
||||
nixfmt
|
||||
nixd
|
||||
nil
|
||||
scrcpy
|
||||
android-tools
|
||||
kicad
|
||||
(pico-sdk.override {
|
||||
withSubmodules = true;
|
||||
})
|
||||
picotool
|
||||
gnumake
|
||||
cmake
|
||||
gcc
|
||||
gcc-arm-embedded
|
||||
python315
|
||||
|
||||
# Communication
|
||||
(element-desktop.overrideAttrs (oldAttrs: {
|
||||
desktopItems = [
|
||||
((builtins.elemAt oldAttrs.desktopItems 0).override { startupWMClass = "element"; })
|
||||
];
|
||||
}))
|
||||
discord
|
||||
|
||||
# Music
|
||||
amberol
|
||||
];
|
||||
|
||||
# Install other packages.
|
||||
programs.firefox.enable = true;
|
||||
programs.steam.enable = true;
|
||||
programs.git.enable = true;
|
||||
programs.htop.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
# services.tailscale.enable = true;
|
||||
|
||||
# Install flatpak.
|
||||
services.flatpak.enable = true;
|
||||
|
||||
# Add a new remote. Keep the default one (flathub)
|
||||
services.flatpak.remotes = lib.mkOptionDefault [{
|
||||
name = "flathub";
|
||||
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||
}];
|
||||
|
||||
# Nix-Flatpak configuration.
|
||||
services.flatpak.update.auto.enable = false;
|
||||
services.flatpak.uninstallUnmanaged = true;
|
||||
|
||||
# Flatpaks to install
|
||||
services.flatpak.packages = [
|
||||
"com.github.tchx84.Flatseal"
|
||||
"com.jetpackduba.Gitnuro"
|
||||
"moe.launcher.the-honkers-railway-launcher"
|
||||
"com.obsproject.Studio"
|
||||
# "dev.deedles.Trayscale"
|
||||
];
|
||||
|
||||
# Remove unwanted packages.
|
||||
services.xserver.excludePackages = [
|
||||
pkgs.xterm
|
||||
];
|
||||
|
||||
# Remove some Gnome packages.
|
||||
environment.gnome.excludePackages = with pkgs; [
|
||||
epiphany
|
||||
cheese
|
||||
snapshot
|
||||
gnome-software
|
||||
gnome-music
|
||||
gnome-tour
|
||||
yelp
|
||||
];
|
||||
|
||||
environment.sessionVariables.XDG_DATA_DIRS = [
|
||||
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}"
|
||||
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./modules/home-manager.nix
|
||||
./users-configuration/ulysse-cura.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,160 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
apl-entry = with lib.hm.gvariant; name: (position:
|
||||
(mkDictionaryEntry[name (mkVariant [
|
||||
(mkDictionaryEntry["position" (mkVariant position)])
|
||||
])])
|
||||
);
|
||||
in
|
||||
{
|
||||
# Git configuration.
|
||||
programs.git.settings = {
|
||||
user.name = "Ulysse Cura";
|
||||
user.email = "ulysse.cura@gmail.com";
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
|
||||
# Gnome extensions.
|
||||
home.packages = with pkgs.gnomeExtensions; [
|
||||
tophat
|
||||
logo-menu
|
||||
custom-command-toggle
|
||||
just-perfection
|
||||
launch-new-instance
|
||||
keep-pinned-apps-in-appgrid
|
||||
desktop-cube
|
||||
gtile
|
||||
blur-my-shell
|
||||
dynamic-music-pill
|
||||
];
|
||||
|
||||
# Gnome settings.
|
||||
dconf.enable = true;
|
||||
dconf.settings = {
|
||||
# Interface configuration.
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
enable-hot-corners = false;
|
||||
};
|
||||
|
||||
# Session parameters
|
||||
"org/gnome/desktop/session" = {
|
||||
save-restore = false;
|
||||
};
|
||||
|
||||
# App in folders and dock.
|
||||
"org/gnome/desktop/app-folders" = {
|
||||
folder-children = [
|
||||
"System"
|
||||
"Utilities"
|
||||
"AudioVideo"
|
||||
"Games"
|
||||
"Programming"
|
||||
"Kicad"
|
||||
];
|
||||
};
|
||||
"org/gnome/desktop/app-folders/folders/System" = {
|
||||
name = "Système";
|
||||
apps = [ "org.gnome.Settings.desktop" "nvidia-settings.desktop" "gparted.desktop" "org.gnome.SystemMonitor.desktop" "org.gnome.baobab.desktop" "org.gnome.Logs.desktop" "ca.desrt.dconf-editor.desktop" "org.gnome.DiskUtility.desktop" "com.github.tchx84.Flatseal.desktop" ];
|
||||
};
|
||||
"org/gnome/desktop/app-folders/folders/Utilities" = {
|
||||
name = "Utilitaires";
|
||||
apps = [ "org.gnome.Calendar.desktop" "org.gnome.Papers.desktop" "org.gnome.Weather.desktop" "org.gnome.Connections.desktop" "org.gnome.SimpleScan.desktop" "org.gnome.Maps.desktop" "org.gnome.Geary.desktop" "org.gnome.Contacts.desktop" "org.gnome.Extensions.desktop" "htop.desktop" "org.gnome.font-viewer.desktop" "org.gnome.clocks.desktop" "org.gnome.Characters.desktop" "cups.desktop" "org.gnome.seahorse.Application.desktop" "scrcpy.desktop" "scrcpy-console.desktop" ];
|
||||
};
|
||||
"org/gnome/desktop/app-folders/folders/AudioVideo" = {
|
||||
name = "Son et vidéo";
|
||||
apps = [ "org.gnome.Loupe.desktop" "org.gnome.Showtime.desktop" "org.gnome.Decibels.desktop" "com.obsproject.Studio.desktop" ];
|
||||
};
|
||||
"org/gnome/desktop/app-folders/folders/Games" = {
|
||||
name = "Jeux";
|
||||
apps = [ "steam.desktop" "org.prismlauncher.PrismLauncher.desktop" "moe.launcher.the-honkers-railway-launcher.desktop" "Counter-Strike 2.desktop" ];
|
||||
};
|
||||
"org/gnome/desktop/app-folders/folders/Programming" = {
|
||||
name = "Programmation";
|
||||
apps = [ "code.desktop" "com.jetpackduba.Gitnuro.desktop" ];
|
||||
};
|
||||
"org/gnome/desktop/app-folders/folders/Kicad" = {
|
||||
name = "Kicad";
|
||||
apps = [ "org.kicad.kicad.desktop" "org.kicad.eeschema.desktop" "org.kicad.pcbnew.desktop" "org.kicad.bitmap2component.desktop" "org.kicad.pcbcalculator.desktop" "org.kicad.gerbview.desktop" ];
|
||||
};
|
||||
"org/gnome/shell" = {
|
||||
always-show-log-out = true;
|
||||
|
||||
app-picker-layout = [
|
||||
[
|
||||
(apl-entry "System" 0)
|
||||
(apl-entry "Utilities" 1)
|
||||
(apl-entry "AudioVideo" 2)
|
||||
(apl-entry "Games" 3)
|
||||
(apl-entry "org.gnome.Calculator.desktop" 4)
|
||||
(apl-entry "org.gnome.TextEditor.desktop" 5)
|
||||
(apl-entry "org.gnome.Nautilus.desktop" 6)
|
||||
(apl-entry "nixos-manual.desktop" 7)
|
||||
(apl-entry "Programming" 8)
|
||||
(apl-entry "Kicad" 9)
|
||||
(apl-entry "firefox.desktop" 10)
|
||||
(apl-entry "element-desktop.desktop" 11)
|
||||
(apl-entry "discord.desktop" 12)
|
||||
(apl-entry "io.bassi.Amberol.desktop" 13)
|
||||
(apl-entry "org.gnome.Console.desktop" 14)
|
||||
(apl-entry "code.desktop" 15)
|
||||
]
|
||||
];
|
||||
};
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [ "firefox.desktop" "org.gnome.Nautilus.desktop" "org.gnome.Console.desktop" "element-desktop.desktop" "discord.desktop" "io.bassi.Amberol.desktop" "org.prismlauncher.PrismLauncher.desktop" "steam.desktop" "code.desktop" "com.jetpackduba.Gitnuro.desktop" ];
|
||||
};
|
||||
|
||||
# Peripherals
|
||||
"org/gnome/desktop/peripherals/mouse" = {
|
||||
accel-profile = "flat";
|
||||
};
|
||||
"org/gnome/desktop/peripherals/keyboard" = {
|
||||
numlock-state = true;
|
||||
};
|
||||
|
||||
# Extensions
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
enabled-extensions = with pkgs.gnomeExtensions; [
|
||||
tophat.extensionUuid
|
||||
logo-menu.extensionUuid
|
||||
custom-command-toggle.extensionUuid
|
||||
just-perfection.extensionUuid
|
||||
launch-new-instance.extensionUuid
|
||||
keep-pinned-apps-in-appgrid.extensionUuid
|
||||
desktop-cube.extensionUuid
|
||||
gtile.extensionUuid
|
||||
blur-my-shell.extensionUuid
|
||||
dynamic-music-pill.extensionUuid
|
||||
"openbar@neuromorph"
|
||||
];
|
||||
};
|
||||
"org/gnome/shell/extensions/tophat" = {
|
||||
position-in-panel = "center";
|
||||
cpu-display = "both";
|
||||
cpu-sort-cores = false;
|
||||
mem-abs-units = true;
|
||||
mem-display = "numeric";
|
||||
show-fs = false;
|
||||
show-net = false;
|
||||
};
|
||||
"org/gnome/shell/extensions/openbar" = {
|
||||
apply-accent-shell = true;
|
||||
apply-all-shell = true;
|
||||
apply-flatpak = true;
|
||||
apply-gtk = true;
|
||||
apply-menu-notif = true;
|
||||
apply-menu-shell = true;
|
||||
auto-bgalpha = false;
|
||||
autofg-bar = false;
|
||||
autofg-menu = false;
|
||||
autohg-bar = true;
|
||||
autohg-menu = true;
|
||||
autotheme-dark = "Dark";
|
||||
};
|
||||
};
|
||||
|
||||
home.stateVersion = "25.11";
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
# Define user account.
|
||||
users.users.ulysse-cura = {
|
||||
isNormalUser = true;
|
||||
description = "Ulysse Cura";
|
||||
extraGroups = [ "networkmanager" "wheel" "kvm" "adbusers" "dialout" ];
|
||||
};
|
||||
|
||||
# Home-Manager configuration.
|
||||
home-manager.users.ulysse-cura = ./ulysse-cura-home.nix;
|
||||
}
|
||||
Loading…
Reference in New Issue