diff --git a/config/default/system.nix b/config/default/system.nix index b21af52..f6ceab8 100644 --- a/config/default/system.nix +++ b/config/default/system.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: + { config, pkgs, ... }: { nix = { settings = { diff --git a/config/desktop/default.nix b/config/desktop/default.nix index 54671b9..e94301b 100644 --- a/config/desktop/default.nix +++ b/config/desktop/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, lib, pkgs, ... }: { imports = [ ./media.nix diff --git a/config/desktop/glonass.nix b/config/desktop/glonass.nix new file mode 100644 index 0000000..2623170 --- /dev/null +++ b/config/desktop/glonass.nix @@ -0,0 +1,10 @@ +_: +{ + imports = [ + ./media.nix + ./pkgs.nix + ./firefox.nix + ./dwm/default.nix + ./devel/default.nix + ]; +} diff --git a/flake.nix b/flake.nix index fc60ccc..450a5c9 100644 --- a/flake.nix +++ b/flake.nix @@ -46,6 +46,26 @@ } ]; }; + # thinkpad t460 + glonass = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs system; }; + modules = [ + nvf.nixosModules.default + ./hosts/glonass/configuration.nix + home-manager.nixosModules.home-manager + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { inherit inputs; }; + users.user = ./config/desktop/home/home.nix; + }; + } + ]; + }; + + }; }; } diff --git a/hosts/glonass/config/boot.nix b/hosts/glonass/config/boot.nix new file mode 100644 index 0000000..fdd5778 --- /dev/null +++ b/hosts/glonass/config/boot.nix @@ -0,0 +1,34 @@ +{ config, pkgs, ... }: +{ + boot = { + initrd = { + luks = { + devices."luks-d810fef7-b1c9-4007-bcb1-12c99c8692b0".device = "/dev/disk/by-uuid/d810fef7-b1c9-4007-bcb1-12c99c8692b0"; + }; + }; + extraModulePackages = with config.boot.kernelPackages; [ ]; + kernelParams = [ "debug" ]; + loader = { + efi = { + # canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + grub = { + enable = true; + copyKernels = true; + efiInstallAsRemovable = true; + enableCryptodisk = false; + efiSupport = true; + devices = [ "nodev" ]; + extraEntries = '' + menuentry "Reboot" { + reboot + } + menuentry "Poweroff" { + halt + } + ''; + }; + }; + }; +} diff --git a/hosts/glonass/config/default.nix b/hosts/glonass/config/default.nix new file mode 100644 index 0000000..c726031 --- /dev/null +++ b/hosts/glonass/config/default.nix @@ -0,0 +1,11 @@ +{ config, pkgs, ... }: +{ + imports = + [ + ./boot.nix + ./networking.nix + ./pkgs.nix + ./irc.nix + ./shell.nix + ]; +} diff --git a/hosts/glonass/config/irc.nix b/hosts/glonass/config/irc.nix new file mode 100644 index 0000000..8e84b65 --- /dev/null +++ b/hosts/glonass/config/irc.nix @@ -0,0 +1,25 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [weechat]; + services = { + weechat = { + enable = true; + }; + tor = { + enable = true; + controlSocket.enable = true; + client = { + enable = true; + socksListenAddress = { + addr = "127.0.0.1"; + port = 9050; + }; + }; + settings = { + MapAddress = "palladium.libera.chat libera75jm6of4wxpxt4aynol3xjmbtxgfyjpu34ss4d7r7q2v5zrpyd.onion"; + ControlPort = [ 9051 ]; + }; + }; + + }; +} diff --git a/hosts/glonass/config/networking.nix b/hosts/glonass/config/networking.nix new file mode 100644 index 0000000..1f62f50 --- /dev/null +++ b/hosts/glonass/config/networking.nix @@ -0,0 +1,22 @@ +{ config, pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ wireguard-tools ]; + services = { + mullvad-vpn = { + enable = true; + package = pkgs.mullvad-vpn; + }; + }; + networking = { + networkmanager = { + enable = true; + }; + firewall = { + enable = false; + checkReversePath = false; + + allowedTCPPorts = []; + allowedUDPPorts = []; + }; + }; +} diff --git a/hosts/glonass/config/shell.nix b/hosts/glonass/config/shell.nix new file mode 100644 index 0000000..26773db --- /dev/null +++ b/hosts/glonass/config/shell.nix @@ -0,0 +1,110 @@ +{ config, pkgs, ... }: +{ + programs = { + bash = { + enable = true; + enableLsColors = true; + completion = { + enable = true; + package = pkgs.bash-completion; + }; + promptInit = '' + PS1="(\h) [\u:\w] % " + ''; + shellAliases = { + "mount" = "doas mount --mkdir -v $@"; + "mkdir" = "mkdir -pv"; + "cp" = "cp -rv"; + "mv" = "mv -v $@"; + "rm" = "rm -v $@ -I"; + "ls" = "${pkgs.eza}/bin/eza --icons -l"; + "http" = "${pkgs.python3}/bin/python3 -m http.server 1337"; + "sudo" = "doas"; + "myip" = "curl -sSL icanhazip.com"; + "update" = "doas nixos-rebuild switch"; + "f" = "fastfetch"; + }; + }; + ssh = { + askPassword = "${pkgs.openssh-askpass}/libexec/gtk-ssh-askpass"; + }; + git = { + enable = true; + config = { + init = { + defaultBranch = "main"; + }; + safe = { + directory = "/etc/nixos"; + }; + user = { + name = "TrollMii"; + email = "trollmii@proton.me"; + }; + url = { + "https://github.com" = { + insteadOf = [ + "gh:" + "github:" + ]; + }; + }; + }; + }; + tmux = { + enable = true; + keyMode = "vi"; + aggressiveResize = true; + terminal = "tmux-256color"; + extraConfig = '' + unbind C-b + # unbind t + set -g prefix C-a + bind C-a send-prefix + + bind r source-file /etc/tmux.conf + + setw -g mode-keys vi + setw -g mouse on + + # make ctrl + arrow keys working + set -s extended-keys on + set -as terminal-features 'xterm*:extkeys' + set -g xterm-keys on + + bind-key -n S-Left select-pane -L + bind-key -n S-Down select-pane -D + bind-key -n S-Up select-pane -U + bind-key -n S-Right select-pane -R + + bind-key -n C-t new-window "#{pane_current_path}" + bind t new-window + + bind-key -n M-w previous-window + bind-key -n M-e next-window + + set -g base-index 1 + set -g renumber-windows on + + set-window-option -g clock-mode-colour colour196 + + set -g status-bg black + set -g status-fg white + set -g status-position top + set -g status-interval 1 + + set -g status-left-length 64 + set -g status-left "#[bg=colour196,fg=black,bold] [#S] #[bg=black,fg=colour196,nobold,noitalics,nounderscore] " + + set -g status-right-length 64 + set -g status-right "#[bg=black,fg=black]#[bg=black,fg=white] #{pane_title} #[bg=black,fg=colour196,bold]#[bg=colour196,fg=black,bold] %a %d %b  #[fg=black,bold]%H:%M:%S " + + set-window-option -g window-status-current-format "#[bg=colour196,fg=black,nobold,noitalics,nounderscore]#[bg=colour196,fg=black,bold] #I #[bg=colour196,fg=black,bold] #W#{?window_zoomed_flag,*Z,} #[bg=black,fg=colour196,nobold,noitalics,nounderscore]" + set-window-option -g window-status-format "#[bg=black,fg=black,noitalics]#[bg=black,fg=white] #I #[bg=black,fg=white] #W #[bg=black,fg=black,noitalics]" + + bind - split-window + bind \\ split-window -h + ''; + }; + }; +} diff --git a/hosts/glonass/configuration.nix b/hosts/glonass/configuration.nix new file mode 100644 index 0000000..c4b24b0 --- /dev/null +++ b/hosts/glonass/configuration.nix @@ -0,0 +1,21 @@ +{ config, pkgs, ... }: +{ + imports = + [ + ./hardware-configuration.nix + # custom + ./config/default.nix + # default + ../../config/default/default.nix + # desktop + ../../config/desktop/glonass.nix + ]; + networking.hostName = "glonass"; + time.timeZone = "Europe/Berlin"; + + + + services.openssh.enable = true; + + +} diff --git a/hosts/glonass/hardware-configuration.nix b/hosts/glonass/hardware-configuration.nix new file mode 100644 index 0000000..7ea88bf --- /dev/null +++ b/hosts/glonass/hardware-configuration.nix @@ -0,0 +1,36 @@ +# 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" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/4fec985e-0a80-46e5-bbb3-02b00f9039ad"; + fsType = "ext4"; + }; + + fileSystems."/steam/drive/0" = + { device = "/dev/disk/by-uuid/df1179e8-d36e-4fbf-bc06-60d6315f8a3b"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/C177-CF20"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}