diff --git a/.gitignore b/.gitignore index 1a94a62..49d6ac9 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ backup /penrose/target /penrose/Cargo.lock /penrose/result +disks.nix diff --git "a/\\" "b/\\" new file mode 100644 index 0000000..2418792 --- /dev/null +++ "b/\\" @@ -0,0 +1,167 @@ +# 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’). + +{ pkgs, config, ... }: +{ + imports = + [ + + ./hardware-configuration.nix + ./packages.nix + ./home.nix + ./user.nix + ./services.nix + ./programs.nix + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.efi.efiSysMountPoint = "/boot/efi"; + + hardware = { + opengl = { + extraPackages32 = [ + pkgs.driversi686Linux.amdvlk + ]; + extraPackages = [ + pkgs.amdvlk + ]; + }; + }; + + # hostname + networking.hostName = "cat"; # Define your hostname. + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "Europe/Berlin"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.utf8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.utf8"; + LC_IDENTIFICATION = "de_DE.utf8"; + LC_MEASUREMENT = "de_DE.utf8"; + LC_MONETARY = "de_DE.utf8"; + LC_NAME = "de_DE.utf8"; + LC_NUMERIC = "de_DE.utf8"; + LC_PAPER = "de_DE.utf8"; + LC_TELEPHONE = "de_DE.utf8"; + LC_TIME = "de_DE.utf8"; + }; + + # xserver options + services.xserver = { + displayManager = { + lightdm.enable = true; + defaultSession = "xfce+i3"; + }; + enable = true; + layout = "us"; + xkbVariant = "alt-intl"; + + windowManager.i3 = { + package = pkgs.i3-gaps; + enable = true; + extraPackages = with pkgs; [ + autotiling + brightnessctl + xorg.xev + dunst + python311 + i3status-rust + ]; + }; + desktopManager.default = "xfce"; + desktopManager.xfce = { + enable = true; + noDesktop = true; + enableXfwm = false; + }; + + libinput = { + enable = true; + mouse = { + accelProfile = "flat"; + accelSpeed = "1.0"; + }; + }; + }; + + # Configure console keymap + console.keyMap = "us"; + + # Enable CUPS to print documents. + # services.printing.enable = true; + + programs.seahorse.enable = true; + + # Enable sound with pipewire. + sound.enable = true; + hardware.pulseaudio.enable = false; + + # enable bluetooth + hardware.bluetooth.enable = true; + + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # 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; + }; + + # Allow unfree packages + nixpkgs.config.allowUnfree = 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; + # }; + + # vim + environment.variables.EDITOR = "nvim"; + programs.neovim.enable = true; + programs.neovim.viAlias = true; + + # wireguard settings + networking.firewall = { + # if packets are still dropped, they will show up in dmesg + logReversePathDrops = true; + # wireguard trips rpfilter up + extraCommands = '' + ip46tables -t raw -I nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN + ip46tables -t raw -I nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN + ''; + extraStopCommands = '' + ip46tables -t raw -D nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN || true + ip46tables -t raw -D nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN || true + ''; + }; + + # 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 = "22.05"; # Did you read the comment? + + virtualisation.libvirtd.enable = true; + programs.dconf.enable = true; + +} diff --git a/configuration.nix b/configuration.nix index 4512b3f..d196673 100644 --- a/configuration.nix +++ b/configuration.nix @@ -13,6 +13,7 @@ ./user.nix ./services.nix ./programs.nix + ./disks.nix ]; # Bootloader. @@ -77,7 +78,6 @@ i3status-rust ]; }; - desktopManager.xfce = { enable = true; noDesktop = true; diff --git a/home.nix b/home.nix index 9a98b7a..6ae21fe 100644 --- a/home.nix +++ b/home.nix @@ -8,33 +8,33 @@ let i3StatusCustom = import ./i3/i3status-rust.nix; dunstCustom = import ./dunst/settings.nix; in - { - home-manager.users.zoe = { pkgs, ... }: { - home.packages = with pkgs; [ - haskellPackages.haskell-language-server - haskellPackages.hoogle - cabal-install - stack - ]; +{ + home-manager.users.zoe = { pkgs, ... }: { + home.packages = with pkgs; [ + haskellPackages.haskell-language-server + haskellPackages.hoogle + cabal-install + stack + ]; - programs.kitty = kittyCustom pkgs; - programs.neovim = nvimCustom pkgs; - programs.fish = fishCustom pkgs; - programs.rofi = rofiCustom pkgs; - programs.i3status-rust = i3StatusCustom pkgs; - services.dunst = dunstCustom pkgs; - xsession.windowManager.i3 = i3Custom pkgs; + programs.kitty = kittyCustom pkgs; + programs.neovim = nvimCustom pkgs; + programs.fish = fishCustom pkgs; + programs.rofi = rofiCustom pkgs; + programs.i3status-rust = i3StatusCustom pkgs; + services.dunst = dunstCustom pkgs; + xsession.windowManager.i3 = i3Custom pkgs; - programs.git = { - enable = true; - userName = "zoe"; - userEmail = "ZoeOosting@outlook.com"; - }; - - programs.mpv.config = { - ytdl-format = "bestvideo[height<=?720]+bestaudio"; - ytdl-path = "yt-dlp"; - save-position-on-quit = true; - }; + programs.git = { + enable = true; + userName = "zoe"; + userEmail = "ZoeOosting@outlook.com"; }; - } + + programs.mpv.config = { + ytdl-format = "bestvideo[height<=?720]+bestaudio"; + ytdl-path = "yt-dlp"; + save-position-on-quit = true; + }; + }; +} diff --git a/i3/config.nix b/i3/config.nix index 8093d94..ed72179 100644 --- a/i3/config.nix +++ b/i3/config.nix @@ -9,48 +9,48 @@ let color_indicator = "#af3a03"; color_evil = "#9d0006"; in - { - modifier = mod; - terminal = term; - menu = "exec rofi -combi-modi window#drun#ssh -show-icons -show combi -modi combi"; - fonts = { - names = [ "CaskaydiaCove Nerd Font" ]; - size = 11.0; - }; +{ + modifier = mod; + terminal = term; + menu = "exec rofi -combi-modi window#drun#ssh -show-icons -show combi -modi combi"; + fonts = { + names = [ "CaskaydiaCove Nerd Font" ]; + size = 11.0; + }; - colors = { + colors = { + background = color_bg; + focused = { background = color_bg; - focused = { - background = color_bg; - border = color_active; - childBorder = color_active; - indicator = color_indicator; - text = color_fg; - }; - focusedInactive = { - background = color_bg; - border = color_inactive; - childBorder = color_inactive; - indicator = color_indicator; - text = color_fg; - }; - unfocused = { - background = color_bg; - border = color_inactive; - childBorder = color_inactive; - indicator = color_indicator; - text = color_fg; - }; - urgent = { - background = color_bg; - border = color_evil; - childBorder = color_evil; - indicator = color_indicator; - text = color_fg; - }; + border = color_active; + childBorder = color_active; + indicator = color_indicator; + text = color_fg; }; + focusedInactive = { + background = color_bg; + border = color_inactive; + childBorder = color_inactive; + indicator = color_indicator; + text = color_fg; + }; + unfocused = { + background = color_bg; + border = color_inactive; + childBorder = color_inactive; + indicator = color_indicator; + text = color_fg; + }; + urgent = { + background = color_bg; + border = color_evil; + childBorder = color_evil; + indicator = color_indicator; + text = color_fg; + }; + }; - keybindings = lib.mkOptionDefault { + keybindings = lib.mkOptionDefault { # launch things ## calculator "${mod}+c" = "exec rofi -show calc"; diff --git a/i3/settings.nix b/i3/settings.nix index 92087fd..7b5b15d 100644 --- a/i3/settings.nix +++ b/i3/settings.nix @@ -2,8 +2,8 @@ let myConfig = import ./config.nix; in - { - package = pkgs.i3-gaps; - enable = true; - config = myConfig; - } +{ + package = pkgs.i3-gaps; + enable = true; + config = myConfig; +} diff --git a/packages.nix b/packages.nix index 83e3f59..24b6ffb 100644 --- a/packages.nix +++ b/packages.nix @@ -6,5 +6,6 @@ fonts.fonts = with pkgs; [ noto-fonts (nerdfonts.override { fonts = [ "CascadiaCode" ]; }) + xfce.xfce4-settings ]; } diff --git a/programs.nix b/programs.nix index 8ecc8a5..a3f88da 100644 --- a/programs.nix +++ b/programs.nix @@ -1,4 +1,4 @@ -{ pkgs, ...}: +{ pkgs, ... }: { programs.steam = { enable = true; diff --git a/sync.sh b/sync.sh index de43543..f74bd5c 100755 --- a/sync.sh +++ b/sync.sh @@ -7,7 +7,7 @@ git pull # cp -r /etc/nixos/ ./backup # copy over all the files to /etc/nixos/ -sudo cp -r ./configuration.nix ./wallpaper.png ./dunst ./rofi ./i3 ./fish ./kitty ./nvim/ ./programs.nix ./packages.nix ./home.nix ./services.nix ./user.nix /etc/nixos/ +sudo cp -r ./configuration.nix ./wallpaper.png ./dunst ./rofi ./i3 ./fish ./kitty ./nvim/ ./disks.nix ./programs.nix ./packages.nix ./home.nix ./services.nix ./user.nix /etc/nixos/ # build penrose and copy it to nixos folder # cd ./penrose diff --git a/user.nix b/user.nix index 5096cb9..5395b95 100644 --- a/user.nix +++ b/user.nix @@ -20,7 +20,7 @@ # files and partitions gnome.gnome-disk-utility xfce.thunar - pcmanfm + xarchiver # music / sound cmus @@ -41,8 +41,6 @@ # games steam lutris - wine - winetricks # x11 arandr