diff --git a/flake.nix b/flake.nix index 81b4058..e6db417 100644 --- a/flake.nix +++ b/flake.nix @@ -27,9 +27,9 @@ url = "git+https://git.rougebordeaux.xyz/harry123/nix-secrets-next.git"; flake = false; }; - miovim.url = "git+https://git.rougebordeaux.xyz/harry123/miovim.git"; */ + miovim.url = "git+https://git.rougebordeaux.xyz/harry123/miovim.git"; nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgsUnstable"; @@ -64,7 +64,7 @@ ... }@inputs: let - username = "harry123"; + username = "misschloe777"; secrets = builtins.toString inputs.nix-secrets; specialArgs = { @@ -110,6 +110,36 @@ ./home-manager/home.nix catppuccin.homeModules.catppuccin ]; + + home.packages = [ + inputs.miovim.packages.${system}.default + ]; + }; + home-manager.extraSpecialArgs = { inherit inputs; }; + } + ]; + }; + + workstation = nixpkgsUnstable.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = specialArgs; + modules = [ + ./hosts/workstation/configuration.nix + nix-flatpak.nixosModules.nix-flatpak + catppuccin.nixosModules.catppuccin + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.${username} = { + imports = [ + ./home-manager/home.nix + catppuccin.homeModules.catppuccin + ]; + + home.packages = [ + inputs.miovim.packages.${system}.default + ]; }; home-manager.extraSpecialArgs = { inherit inputs; }; } diff --git a/home-manager/dotfiles/eepy_count.sh b/home-manager/dotfiles/eepy_count.sh new file mode 100644 index 0000000..f1f641a --- /dev/null +++ b/home-manager/dotfiles/eepy_count.sh @@ -0,0 +1 @@ +#!/usr/bin/env bash diff --git a/home-manager/home.nix b/home-manager/home.nix index 42c5995..b34c5a9 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -7,8 +7,8 @@ { # Home Manager needs a bit of information about you and the paths it should # manage. - home.username = "harry123"; - home.homeDirectory = "/home/harry123"; + home.username = "misschloe777"; + home.homeDirectory = "/home/misschloe777"; # This value determines the Home Manager release that your configuration is # compatible with. This helps avoid breakage when a new Home Manager release @@ -22,11 +22,6 @@ # The home.packages option allows you to install Nix packages into your # environment. home.packages = with pkgs; [ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - beeper nerd-fonts.code-new-roman ffmpegthumbnailer xfce.tumbler @@ -38,24 +33,21 @@ cava hyfetch kittysay - nextcloud-client thunderbird-bin feh waybar p7zip + tealdeer libreoffice-qt - tetrio-desktop playerctl wf-recorder file - osu-lazer-bin qbittorrent - i2pd ripgrep vscode @@ -78,10 +70,7 @@ audacious-plugins libsixel - unzip - p7zip - - libsixel + libnotify unzip p7zip @@ -89,6 +78,8 @@ fuzzel zsh-syntax-highlighting + dysk + rsync obsidian papirus-icon-theme # # You can also create simple shell scripts directly inside your @@ -113,7 +104,6 @@ ".bashrc".source = dotfiles/bash/.bashrc; ".config/hyfetch.json".source = dotfiles/hyfetch/hyfetch.json; ".config/niri".source = dotfiles/niri; - ".config/fuzzel/fuzzel.ini".source = dotfiles/fuzzel/fuzzel.ini; ".config/mako".source = dotfiles/mako; # # You can also set the file content immediately. @@ -137,6 +127,34 @@ "--cmd cd" ]; + programs.fuzzel = { + enable = true; + settings = { + main = { + match-mode = "fzf"; + }; + colors = { + background = "eff1f5dd"; + text = "4c4f69ff"; + prompt = "5c5f77ff"; + placeholder = "8c8fa1ff"; + input = "4c4f69ff"; + match = "d20f39ff"; + selection = "acb0beff"; + selection-text = "4c4f69ff"; + selection-match = "d20f39ff"; + counter = "8c8fa1ff"; + border = "d20f39ff"; + }; + border.radius = 0; + }; + }; + + programs.fzf = { + enable = true; + enableZshIntegration = true; + }; + services.mpris-proxy.enable = true; services.udiskie = { diff --git a/hosts/goober/configuration.nix b/hosts/goober/configuration.nix index c3931e8..4197396 100644 --- a/hosts/goober/configuration.nix +++ b/hosts/goober/configuration.nix @@ -5,6 +5,7 @@ { config, lib, + username, pkgs, inputs, ... @@ -78,7 +79,7 @@ environment.pathsToLink = [ "/share/zsh" ]; # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.harry123 = { + users.users.${username} = { isNormalUser = true; shell = pkgs.zsh; extraGroups = [ @@ -130,17 +131,6 @@ options = "--delete-older-than 10d"; }; - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - # This option defines the first version of NixOS you have installed on this particular machine, # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. # diff --git a/hosts/goober/features/software/discord.nix b/hosts/goober/features/software/discord.nix index d157cfd..98b093b 100644 --- a/hosts/goober/features/software/discord.nix +++ b/hosts/goober/features/software/discord.nix @@ -4,6 +4,7 @@ (discord.override { withVencord = true; }) + vesktop ]; # screen record support xdg = { diff --git a/hosts/goober/features/software/workstation.nix b/hosts/goober/features/software/workstation.nix index e0d9640..d19c321 100644 --- a/hosts/goober/features/software/workstation.nix +++ b/hosts/goober/features/software/workstation.nix @@ -10,6 +10,7 @@ "vscode" "tetrio-desktop" "beeper" + "exact-audio-copy" ]; environment.systemPackages = with pkgs; [ @@ -34,6 +35,7 @@ # 3d modeling blender + beeper signal-desktop gajim weechat @@ -45,19 +47,26 @@ nil jetbrains.idea-ultimate - why3 - alt-ergo - cvc4 - z3 + # why3 + # alt-ergo + # cvc4 + # z3 bitwarden kicad ente-auth ente-web jetbrains.rider revolt-desktop + exactaudiocopy + picard + nextcloud-client + i2pd + + # games + tetrio-desktop + osu-lazer-bin ]; - programs.kdeconnect.enable = true; virtualisation.containers.enable = true; virtualisation = { podman = { diff --git a/hosts/sisyphe/features/services/akkoma.nix b/hosts/sisyphe/features/services/akkoma.nix index 5f18279..8267fd2 100644 --- a/hosts/sisyphe/features/services/akkoma.nix +++ b/hosts/sisyphe/features/services/akkoma.nix @@ -23,7 +23,7 @@ encode gzip - reverse_proxy :4004 + reverse_proxy :4000 ''; services.caddy.virtualHosts."http://eepy.rougebordeaux.xyz".extraConfig = '' diff --git a/hosts/workstation/configuration.nix b/hosts/workstation/configuration.nix new file mode 100644 index 0000000..4ed093d --- /dev/null +++ b/hosts/workstation/configuration.nix @@ -0,0 +1,136 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ + inputs, + config, + pkgs, + ... +}: + +{ + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../shared/client/niri.nix + ../../shared + ./software + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Use latest kernel. + boot.kernelPackages = pkgs.linuxPackages_latest; + + boot.initrd.luks.devices."luks-11a80280-8a8c-44c0-a8be-7ef370eb37ae".device = + "/dev/disk/by-uuid/11a80280-8a8c-44c0-a8be-7ef370eb37ae"; + networking.hostName = "workstation"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "Europe/Paris"; + + # Select internationalisation properties. + i18n.defaultLocale = "fr_FR.UTF-8"; + + 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 = "azerty"; + }; + + # Configure console keymap + console.keyMap = "fr"; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.misschloe777 = { + isNormalUser = true; + description = "misschloe777"; + extraGroups = [ + "networkmanager" + "wheel" + "audio" + "video" + "podman" + ]; + packages = with pkgs; [ + inputs.zen-browser.packages."${system}".default + ]; + }; + + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + wget + dwl + git + tmux + mako + grim + slurp + wl-clipboard + udiskie + ]; + + programs.zsh.enable = true; + environment.pathsToLink = [ "/share/zsh" ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + programs.mtr.enable = true; + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # 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). + system.stateVersion = "25.05"; # Did you read the comment? +} diff --git a/hosts/workstation/features/hardware/default.nix b/hosts/workstation/features/hardware/default.nix new file mode 100644 index 0000000..5f095c8 --- /dev/null +++ b/hosts/workstation/features/hardware/default.nix @@ -0,0 +1,3 @@ +{ + imports = [ ./nvidia.nix ]; +} diff --git a/hosts/workstation/features/hardware/nvidia.nix b/hosts/workstation/features/hardware/nvidia.nix new file mode 100644 index 0000000..ade3976 --- /dev/null +++ b/hosts/workstation/features/hardware/nvidia.nix @@ -0,0 +1,13 @@ +{ config, pkgs, ... }: + +{ + boot.blacklistedKernelModules = [ "nouveau" ]; + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ nvidia-vaapi-driver ]; + }; + services.xserver.videoDrivers = [ "nvidia" ]; + hardware.nvidia = { + open = false; + }; +} diff --git a/hosts/workstation/features/software/default.nix b/hosts/workstation/features/software/default.nix new file mode 100644 index 0000000..79b1345 --- /dev/null +++ b/hosts/workstation/features/software/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./workstation.nix + ./discord.nix + ]; +} diff --git a/hosts/workstation/features/software/discord.nix b/hosts/workstation/features/software/discord.nix new file mode 100644 index 0000000..98b093b --- /dev/null +++ b/hosts/workstation/features/software/discord.nix @@ -0,0 +1,22 @@ +{ config, pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + (discord.override { + withVencord = true; + }) + vesktop + ]; + # screen record support + xdg = { + autostart.enable = true; + icons.enable = true; + portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + ]; + wlr.enable = true; + }; + }; +} diff --git a/hosts/workstation/features/software/workstation.nix b/hosts/workstation/features/software/workstation.nix new file mode 100644 index 0000000..e079a7e --- /dev/null +++ b/hosts/workstation/features/software/workstation.nix @@ -0,0 +1,37 @@ +{ pkgs, lib, ... }: +{ + nixpkgs.config.allowUnfreePredicate = + pkg: + builtins.elem (lib.getName pkg) [ + "davinci-resolve" + "vscode" + "tetrio-desktop" + "beeper" + ]; + + environment.systemPackages = with pkgs; [ + zathura + libreoffice-qt + hunspell + hunspellDicts.fr-any + hunspellDicts.en-gb-large + + # recording software + obs-studio + + gvfs + nil + bitwarden + ]; + + virtualisation.containers.enable = true; + virtualisation = { + podman = { + enable = true; + # Create a `docker` alias for podman, to use it as a drop-in replacement + dockerCompat = true; + # Required for containers under podman-compose to be able to talk to each other. + defaultNetwork.settings.dns_enabled = true; + }; + }; +} diff --git a/hosts/workstation/hardware-configuration.nix b/hosts/workstation/hardware-configuration.nix new file mode 100644 index 0000000..b497b4f --- /dev/null +++ b/hosts/workstation/hardware-configuration.nix @@ -0,0 +1,42 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "vmd" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/a9f9a6b3-1a37-4b41-9bc1-2926b91d2313"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-73dfdf0a-a2af-4288-8d8a-dadebb09dbb6".device = "/dev/disk/by-uuid/73dfdf0a-a2af-4288-8d8a-dadebb09dbb6"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/CA07-8097"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/fea61063-24da-4921-86f4-d26c700ae66f"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.eno1.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/shared/client/niri.nix b/shared/client/niri.nix index 3612a03..01cadf4 100644 --- a/shared/client/niri.nix +++ b/shared/client/niri.nix @@ -36,7 +36,9 @@ }; services.displayManager.gdm.enable = true; + services.udisks2.enable = true; + security.pam.services.swaylock = { }; security.pam.loginLimits = [ { domain = "@users"; diff --git a/shared/default.nix b/shared/default.nix index cf77c51..3ec08ae 100644 --- a/shared/default.nix +++ b/shared/default.nix @@ -17,9 +17,11 @@ pkgs.foot.terminfo pkgs.kittysay pkgs.tmux + pkgs.fzf ]; environment.variables.EDITOR = "nvim"; + programs.fzf.fuzzyCompletion = true; nix.settings.experimental-features = [ "nix-command" @@ -31,8 +33,6 @@ keyMap = "fr"; }; - services.tailscale.enable = true; - # Set your time zone. time.timeZone = lib.mkDefault "Europe/Paris"; i18n.defaultLocale = "fr_FR.UTF-8"; diff --git a/shared/zsh.nix b/shared/zsh.nix new file mode 100644 index 0000000..e69de29