From 1d628415b644150c1751cb75d9c94e1886c07612 Mon Sep 17 00:00:00 2001 From: vorboyvo Date: Fri, 11 Jul 2025 23:30:15 -0400 Subject: [PATCH] Buncha de-lacadie stuff. --- hosts/de-lacadie/configuration.nix | 28 ++-- hosts/de-lacadie/configuration.nix.bak | 209 +++++++++++++++++++++++++ hosts/de-lacadie/home.nix | 25 ++- hosts/de-lacadie/home.nix.bak | 204 ++++++++++++++++++++++++ 4 files changed, 438 insertions(+), 28 deletions(-) create mode 100644 hosts/de-lacadie/configuration.nix.bak create mode 100644 hosts/de-lacadie/home.nix.bak diff --git a/hosts/de-lacadie/configuration.nix b/hosts/de-lacadie/configuration.nix index f887726..d596acb 100644 --- a/hosts/de-lacadie/configuration.nix +++ b/hosts/de-lacadie/configuration.nix @@ -87,12 +87,12 @@ powerManagement.finegrained = false; # Disable open kernel module (alpha-quality) - open = false; + open = true; # Enable nvidia-settings nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; + package = config.boot.kernelPackages.nvidiaPackages.latest; }; ################################################### @@ -128,18 +128,18 @@ }; # Enable x server - services.xserver = { - enable = true; - # displayManager.gdm.enable = true; - # desktopManager.gnome.enable = true; - desktopManager = { - xterm.enable = false; - }; - displayManager = { - defaultSession = "none+i3"; - }; - windowManager.i3.enable = true; - }; + # services.xserver = { + # enable = true; + # # displayManager.gdm.enable = true; + # # desktopManager.gnome.enable = true; + # desktopManager = { + # xterm.enable = false; + # }; + # displayManager = { + # defaultSession = "none+i3"; + # }; + # windowManager.i3.enable = true; + # }; # Enable dconf; necessary for some programs programs.dconf.enable = true; diff --git a/hosts/de-lacadie/configuration.nix.bak b/hosts/de-lacadie/configuration.nix.bak new file mode 100644 index 0000000..f887726 --- /dev/null +++ b/hosts/de-lacadie/configuration.nix.bak @@ -0,0 +1,209 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page, on +# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + +# This is the minimum config file with which I am installing NixOS before switching to + +{ config, lib, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + nixpkgs.config.allowUnfree = true; + + ################################################ + # SECTION 1: BASIC SYSTEM SOFTWARE CONFIGURATION + ################################################ + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Enable flakes. + nix = { settings.experimental-features = [ "nix-command" "flakes" ]; }; + + networking.hostName = "de-lacadie"; # Define your hostname. + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + + # Set your time zone. + time.timeZone = "America/Montreal"; + + # Select internationalization properties. + i18n.defaultLocale = "fr_CA.UTF-8"; + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; + # useXkbConfig = true; # use xkb.options in tty. + }; + + # Home manager: make user home-manager configs use system nixpkgs + home-manager.useGlobalPkgs = true; + + ################################### + # SECTION 2: HARDWARE CONFIGURATION + ################################### + + # Set login and power management options + services.logind.powerKey = "ignore"; # handle this WM side + services.logind.powerKeyLongPress = "poweroff"; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable udisks (handles storage devices, e.g. usb flash drives) + services.udisks2.enable = true; + + # Enable sound. + security.rtkit.enable = true; # needed for pipewire + hardware.pulseaudio.enable = false; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + + # Enable Bluetooth. + hardware.bluetooth.enable = true; + + # Enable nvidia drivers and graphics. + hardware.graphics = { + enable = true; + enable32Bit = true; + }; + + # Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia = { + # Modesetting is required. + modesetting.enable = true; + + # Disable (experimental) power management; enable if graphical corruption on wake + powerManagement.enable = false; + powerManagement.finegrained = false; + + # Disable open kernel module (alpha-quality) + open = false; + + # Enable nvidia-settings + nvidiaSettings = true; + + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + + ################################################### + # SECTION 3: USERSPACE CONFIG AND OPTIONAL SOFTWARE + ################################################### + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.alice = { + isNormalUser = true; + home = "/home/alice"; + extraGroups = [ "wheel" "networkmanager" ]; # Enable ‘sudo’ for the user. + initialPassword = "manysuchcases"; + shell = pkgs.zsh; + }; + home-manager.users.alice = import ./home.nix; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + ntfs3g + kakoune + git + gay # very important, do not remove + ]; + + # TODO Steam goes here + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "steam" "steam-original" "steam-unwrapped" "steam-run" + ]; + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + }; + + # Enable x server + services.xserver = { + enable = true; + # displayManager.gdm.enable = true; + # desktopManager.gnome.enable = true; + desktopManager = { + xterm.enable = false; + }; + displayManager = { + defaultSession = "none+i3"; + }; + windowManager.i3.enable = true; + }; + + # Enable dconf; necessary for some programs + programs.dconf.enable = true; + + # Enable gvfs; handles trash + services.gvfs.enable = true; + + # Enable tailscale + services.tailscale.enable = true; + + # Enable adb + programs.adb.enable = true; + + # Enable zsh; necessary to switch + programs.zsh.enable = true; + + # 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; + settings = { + PermitRootLogin = "no"; + PasswordAuthentication = true; + }; + }; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # 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. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "24.05"; # Did you read the comment? + +} + diff --git a/hosts/de-lacadie/home.nix b/hosts/de-lacadie/home.nix index 8a2b8c2..83649ff 100644 --- a/hosts/de-lacadie/home.nix +++ b/hosts/de-lacadie/home.nix @@ -6,6 +6,7 @@ let terminal = pkgs.alacritty; in { imports = [ + ../../snippets/defaults.nix ../../snippets/gammastep.nix ../../snippets/kdeconnect.nix ../../snippets/ssh.nix @@ -14,6 +15,8 @@ in { ../../snippets/kakoune.nix ../../snippets/clifm.nix ../../snippets/git.nix + ../../snippets/sway.nix + ../../snippets/waybar.nix ../../snippets/firefox.nix ../../snippets/thunderbird.nix ]; @@ -22,6 +25,14 @@ in { home.stateVersion = "24.05"; + # Configure default applications + defaultPrograms = with pkgs; { + terminal = alacritty; + editor = kakoune; + browser = firefox; + mail = thunderbird; + }; + # Configure cursor home.pointerCursor = { package = pkgs.vanilla-dmz; @@ -53,20 +64,6 @@ in { in [ gcc tree-sitter ] ++ # Basic dev tools [ marksman nil ] ++ # Language servers except those installed through package sections [ texliveFull texlab ] ++ # LaTeX - # (with ocamlPackages; [ - # ocaml - # opam - # dune_3 - # dune-release - # merlin - # ocaml-lsp - # odoc - # ocamlformat - # utop - # ]) ++ # OCaml - # [ rustup ] ++ # Rust - # [ go gopls ] ++ # Golang - # (with elmPackages; [ elm elm-language-server elm-format elm-test ]) ++ [ python3 ] ++ # I guess..... [ kak-lsp diff --git a/hosts/de-lacadie/home.nix.bak b/hosts/de-lacadie/home.nix.bak new file mode 100644 index 0000000..8a2b8c2 --- /dev/null +++ b/hosts/de-lacadie/home.nix.bak @@ -0,0 +1,204 @@ +{ config, lib, pkgs, ... }: + +let + scripts = ../../scripts; + extra = ../../extra; + terminal = pkgs.alacritty; +in { + imports = [ + ../../snippets/gammastep.nix + ../../snippets/kdeconnect.nix + ../../snippets/ssh.nix + ../../snippets/zsh.nix + ../../snippets/taskwarrior.nix + ../../snippets/kakoune.nix + ../../snippets/clifm.nix + ../../snippets/git.nix + ../../snippets/firefox.nix + ../../snippets/thunderbird.nix + ]; + home.username = "alice"; + home.homeDirectory = "/home/alice"; + + home.stateVersion = "24.05"; + + # Configure cursor + home.pointerCursor = { + package = pkgs.vanilla-dmz; + name = "Vanilla-DMZ"; + size = 64; + }; + + # Configure icon theme + gtk = { + enable = true; + iconTheme = { + name = "Papirus"; + package = pkgs.papirus-icon-theme; + }; + }; + + # Configure xdg-desktop-portal (for file picker, etc.) + # xdg.portal = { + # enable = true; + # }; + + # Install packages + home.packages = with pkgs; + let + mons = callPackage ../../pkgs/mons/mons.nix { }; + archivo = callPackage ../../pkgs/archivo/archivo.nix { }; + highway-gothic = callPackage ../../pkgs/highway-gothic/highway-gothic.nix { }; + olympus = callPackage ../../pkgs/olympus/package.nix { }; + in [ gcc tree-sitter ] ++ # Basic dev tools + [ marksman nil ] ++ # Language servers except those installed through package sections + [ texliveFull texlab ] ++ # LaTeX + # (with ocamlPackages; [ + # ocaml + # opam + # dune_3 + # dune-release + # merlin + # ocaml-lsp + # odoc + # ocamlformat + # utop + # ]) ++ # OCaml + # [ rustup ] ++ # Rust + # [ go gopls ] ++ # Golang + # (with elmPackages; [ elm elm-language-server elm-format elm-test ]) ++ + [ python3 ] ++ # I guess..... + [ + kak-lsp + brightnessctl + jq + blueman + upower + glib # provides trash and mount (latter may supplant udisks2?) + ] ++ # Basic utilities + [ bitwarden-cli htop snore hledger hledger-ui ] + ++ # Personalized selection of command-line (CLI/TUI) apps + [ terminal ] ++ # Terminal emulator + [ + imv + vlc + pavucontrol + ] ++ # Basic graphical apps + [ + libreoffice + signal-desktop + element-desktop + prismlauncher + mumble + gimp + inkscape + deluge-gtk + shotwell + lorien + keepassxc + zulip + filezilla + bitwarden + activate-linux + ] ++ # Personalized selection of graphical apps + [ olympus shticker-book-unwritten ] ++ # Games + [ bemenu j4-dmenu-desktop xclip xdotool ] ++ # i3 and x11 related packages + [ + noto-fonts + redhat-official-fonts + overpass + ibm-plex + rubik + archivo + highway-gothic + font-awesome + ] ++ # Fonts + [ temurin-jre-bin-17 ] ++ # Temp + [ ]; + + programs.home-manager.enable = true; + + + # programs.swaylock = { + # enable = true; + # settings = { font-size = 14; }; + # }; + # services.swayidle = { + # enable = true; + # events = [{ + # event = "before-sleep"; + # command = "${pkgs.lib.getExe pkgs.swaylock} -f"; + # }]; + # }; + + xsession = let + term = terminal; + dmenuCommand = builtins.readFile "${scripts}/dmenu.sh"; + shutdownMenu = pkgs.writeShellScript "shutdownmenu" + (builtins.readFile "${scripts}/shutdownmenu.sh"); + in { + enable = true; + windowManager.i3 = { + enable = true; + package = pkgs.i3-gaps; + config = rec { + terminal = "${pkgs.lib.getExe term}"; + modifier = "Mod4"; + fonts = { + names = [ "Red Hat Display" ]; + style = "Regular"; + size = 12.0; + }; + # input = { + # "type:keyboard" = { + # xkb_layout = "ca,ca"; + # xkb_variant = ",eng"; + # }; + # }; + # leaving bars out for now + # bars = ... + window = { + border = 2; + titlebar = true; + }; + menu = "j4-dmenu-desktop --no-generic --term=${pkgs.lib.getExe term} --dmenu='${dmenuCommand}'"; + focus.followMouse = false; + # keybindings and extraConfig go here + keybindings = lib.mkOptionDefault rec { + XF86PowerOff = + "exec DMENU_COMMAND='${dmenuCommand}' bash ${shutdownMenu}"; + "${modifier}+Pause" = XF86PowerOff; }; + }; + }; + }; + + # configure fonts correctly + fonts.fontconfig.enable = true; + xdg.configFile."fontconfig/conf.d/5-default.fonts.conf".source = + "${extra}/20-default-fonts.conf"; + + # terminal emulator + programs.alacritty.enable = true; + + # programs.neovim = import ./snippets/neovim.nix; + + programs.zathura = { + enable = true; + }; + + programs.pandoc = { enable = true; }; + + # Configure notifications + services.dunst = { + enable = true; + settings = { + global = { + font = "Red Hat Display 12"; + mouse_left_click = "do_action, close_current"; + mouse_middle_click = "close_all"; + mouse_right_click = "close_current"; + }; + }; + }; + +}