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