aboutsummaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
authorJacob Janzen <jacob.a.s.janzen@gmail.com>2024-09-25 21:12:18 -0500
committerJacob Janzen <jacob.a.s.janzen@gmail.com>2024-09-25 21:12:18 -0500
commitc8d19a52e004abdeaaa73416747d9acb56984446 (patch)
tree2af8810d30588fa2ea1dc3574148b4f6a065b1cc /nixos
parent98ddd576c3a5766d3fcace49ea105950c26cde03 (diff)
add nixos config
Diffstat (limited to 'nixos')
l---------nixos/.config/emacs1
l---------nixos/.config/nvim1
-rw-r--r--nixos/.local/share/applications/emacs.org20
l---------nixos/.wallpaper1
-rw-r--r--nixos/flake/configuration.nix141
-rw-r--r--nixos/flake/flake.lock61
-rw-r--r--nixos/flake/flake.nix29
-rw-r--r--nixos/flake/hardware-configuration.nix41
-rw-r--r--nixos/flake/home.nix533
l---------nixos/profile.org1
10 files changed, 829 insertions, 0 deletions
diff --git a/nixos/.config/emacs b/nixos/.config/emacs
new file mode 120000
index 0000000..f4e5e56
--- /dev/null
+++ b/nixos/.config/emacs
@@ -0,0 +1 @@
+../../common/.config/emacs \ No newline at end of file
diff --git a/nixos/.config/nvim b/nixos/.config/nvim
new file mode 120000
index 0000000..a0abd03
--- /dev/null
+++ b/nixos/.config/nvim
@@ -0,0 +1 @@
+../../common/.config/nvim \ No newline at end of file
diff --git a/nixos/.local/share/applications/emacs.org b/nixos/.local/share/applications/emacs.org
new file mode 100644
index 0000000..6eab52f
--- /dev/null
+++ b/nixos/.local/share/applications/emacs.org
@@ -0,0 +1,20 @@
+#+title: Emacs Desktop File
+This is a copy of the normal Emacs desktop file, but it launches with =emacsclient= instead of =emacs= to allow connecting to the Emacs daemon.
+#+begin_src desktop :tangle ~/.local/share/applications/emacs.desktop :mkdirp yes
+ [Desktop Entry]
+ Type=Application
+ Version=1.0
+ Name=GNU Emacs
+ GenericName=Emacs
+ Comment=Emacs is the extensible, customizable, self-documenting real-time display editor
+ Comment[de]=Emacs ist der erweiterbare, anpassbare, selbst-dokumentierende Echtzeit-Editor
+ Comment[es]=Emacs es un editor ampliable, adaptable, mismo documentado, de tiempo real
+ Comment[fr]=Emacs est l'éditeur plein écran avancé, auto-documenté, personnalisable et extensible
+ Icon=emacs
+ TryExec=/usr/bin/emacs
+ Exec=/usr/bin/emacsclient -c %F
+ Terminal=false
+ MimeType=text/css;text/english;text/html;text/plain;text/x-c;text/x-chdr;text/x-csrc;text/x-c++;text/x-c++hdr;text/x-c++src;text/x-java;text/x-makefile;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;
+ Categories=Development;TextEditor;
+ StartupWMClass=Emacs
+#+end_src
diff --git a/nixos/.wallpaper b/nixos/.wallpaper
new file mode 120000
index 0000000..ec41b94
--- /dev/null
+++ b/nixos/.wallpaper
@@ -0,0 +1 @@
+../common/.wallpaper \ No newline at end of file
diff --git a/nixos/flake/configuration.nix b/nixos/flake/configuration.nix
new file mode 100644
index 0000000..0999475
--- /dev/null
+++ b/nixos/flake/configuration.nix
@@ -0,0 +1,141 @@
+# 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`).
+
+{ config, lib, pkgs, ... }:
+
+{
+ imports =
+ [ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
+
+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
+ nixpkgs.config.allowUnfree = true;
+
+ # Use the systemd-boot EFI boot loader.
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ networking.hostName = "nixos"; # Define your hostname.
+ networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
+ hardware.bluetooth.enable = true;
+ hardware.bluetooth.powerOnBoot = true;
+ services.blueman.enable = true;
+
+ security.pam.services.hyprlock = {};
+
+ services.flatpak.enable = true;
+ xdg.portal.enable = true;
+
+ # Set your time zone.
+ time.timeZone = "America/Winnipeg";
+
+ # Select internationalisation properties.
+ i18n.defaultLocale = "en_CA.UTF-8";
+
+ # Enable the X11 windowing system.
+ services.xserver.enable = true;
+ services.greetd = {
+ enable = true;
+ settings = {
+ default_session = {
+ command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --sessions ${pkgs.hyprland}/share/wayland-sessions --cmd \"dbus-run-session Hyprland\"";
+ user = "greeter";
+ };
+ };
+ };
+ systemd.services.greetd.serviceConfig = {
+ Type = "idle";
+ StandardInput = "tty";
+ StanardOutput = "tty";
+ StandardError = "journal";
+ TTYReset = true;
+ TTYVHangup = true;
+ TTYVTDisallocate = true;
+ };
+
+ programs.hyprland.enable = true;
+
+ # Configure keymap in X11
+ services.xserver.xkb.layout = "us";
+
+ # Enable CUPS to print documents.
+ services.printing.enable = true;
+
+ # Enable sound.
+ services.pipewire = {
+ enable = true;
+ pulse.enable = true;
+ };
+
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ users.users.jane = {
+ shell = pkgs.zsh;
+ isNormalUser = true;
+ extraGroups = [ "networkmanager" "wheel" ]; # Enable ‘sudo’ for the user.
+ packages = with pkgs; [
+ firefox
+ tree
+ ];
+ };
+ programs.zsh.enable = true;
+
+ # List packages installed in system profile. To search, run:
+ environment.systemPackages = with pkgs; [
+ greetd.tuigreet
+ kitty
+ dolphin
+ git
+ neovim
+ wget
+ ];
+ environment.variables.EDITOR = "vim";
+ environment.pathsToLink = [ "/share/zsh" ];
+ environment.sessionVariables.NIXOS_OZONE_WL = "1";
+
+ # 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;
+
+ # 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/nixos/flake/flake.lock b/nixos/flake/flake.lock
new file mode 100644
index 0000000..d863b13
--- /dev/null
+++ b/nixos/flake/flake.lock
@@ -0,0 +1,61 @@
+{
+ "nodes": {
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1727246346,
+ "narHash": "sha256-TcUaKtya339Asu+g6KTJ8h7KiKcKXKp2V+At+7tksyY=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "1e22ef1518fb175d762006f9cae7f6312b8caedb",
+ "type": "github"
+ },
+ "original": {
+ "id": "home-manager",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1726755586,
+ "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1726937504,
+ "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "9357f4f23713673f310988025d9dc261c20e70c6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "home-manager": "home-manager",
+ "nixpkgs": "nixpkgs_2"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/nixos/flake/flake.nix b/nixos/flake/flake.nix
new file mode 100644
index 0000000..da41906
--- /dev/null
+++ b/nixos/flake/flake.nix
@@ -0,0 +1,29 @@
+{
+ description = "My NixOS Configuration";
+
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ };
+
+ outputs = {
+ self,
+ nixpkgs,
+ home-manager,
+ ...
+ }@inputs: {
+ nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs = { inherit inputs; };
+ modules = [
+ ./configuration.nix
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.backupFileExtension = "bak";
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.users.jane = import ./home.nix;
+ }
+ ];
+ };
+ };
+}
diff --git a/nixos/flake/hardware-configuration.nix b/nixos/flake/hardware-configuration.nix
new file mode 100644
index 0000000..74ef301
--- /dev/null
+++ b/nixos/flake/hardware-configuration.nix
@@ -0,0 +1,41 @@
+# 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 = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-amd" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/1cf884d2-8691-4122-85e2-a4edd2d1609f";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/ABCB-FAEC";
+ fsType = "vfat";
+ options = [ "fmask=0077" "dmask=0077" ];
+ };
+
+ swapDevices =
+ [ { device = "/dev/disk/by-uuid/675d8161-49c5-4348-9da5-4a7c8ada700f"; }
+ ];
+
+ # 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.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp10s0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp9s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/nixos/flake/home.nix b/nixos/flake/home.nix
new file mode 100644
index 0000000..f619e99
--- /dev/null
+++ b/nixos/flake/home.nix
@@ -0,0 +1,533 @@
+{ config, pkgs, ... }:
+
+{
+ home.username = "jane";
+ home.homeDirectory = "/home/jane";
+
+ home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ";
+ xresources.properties = {
+ "Xcursor.size" = 16;
+ };
+
+ fonts.fontconfig.enable = true;
+ home.packages = with pkgs; [
+ discord
+ hyprshot
+ (pkgs.nerdfonts.override { fonts = [ "SourceCodePro" ]; })
+ fuzzel
+ hyfetch
+ htop
+ networkmanagerapplet
+ mako
+ emacs
+ swaybg
+ mpdscribble
+ pavucontrol
+ mpc-cli
+ ];
+
+ programs.ssh = {
+ enable = true;
+ addKeysToAgent = "yes";
+ };
+
+ services.syncthing = {
+ enable = true;
+ };
+
+ programs.hyprlock = {
+ enable = true;
+ settings = {
+ general = {
+ disable_loading_bar = true;
+ grace = 0;
+ hide_cursor = true;
+ no_fade_in = false;
+ };
+ background = [
+ {
+ path = "~/.wallpaper";
+ blur_passes = 3;
+ blur_size = 8;
+ }
+ ];
+ input-field = [
+ {
+ size = "200, 50";
+ position = "0, -80";
+ monitor = "";
+ dots_center = true;
+ fade_on_empty = false;
+ font_color = "rgb(202, 211, 245)";
+ inner_color = "rgb(91, 96, 120)";
+ outer_color = "rgb(24, 25, 38)";
+ outline_thickness = 5;
+ placeholder_text = "<span foreground=\"##cad3f5\">Password...</span>";
+ shadow_passes = 2;
+ }
+ ];
+ };
+ };
+
+ programs.ncmpcpp = {
+ enable = true;
+ bindings = [
+ { key = "j"; command = "scroll_down"; }
+ { key = "k"; command = "scroll_up"; }
+ { key = "h"; command = "previous_column"; }
+ { key = "l"; command = "next_column"; }
+ { key = "g"; command = "move_home"; }
+ { key = "G"; command = "move_end"; }
+ { key = "n"; command = "next_found_item"; }
+ { key = "N"; command = "previous_found_item"; }
+ ];
+ mpdMusicDir = "~/Music";
+ settings = {
+ ncmpcpp_directory = "~/.config/nmcpcpp";
+ mpd_host = "localhost";
+ mpd_port = "6600";
+ };
+ };
+
+ services.mpd = {
+ enable = true;
+ musicDirectory = "~/Music";
+ extraConfig = ''
+ audio_output {
+ type "pipewire"
+ name "Pipewire"
+ mixer_type "hardware"
+ enabled "yes"
+ }
+ '';
+ };
+
+ programs.waybar = {
+ enable = true;
+ settings = {
+ mainBar = {
+ height = 30;
+ spacing = 4;
+ modules-left = [ "hyprland/workspaces" ];
+ modules-center = [ "hyprland/window" ];
+ modules-right = [ "mpd" "pulseaudio" "cpu" "memory" "clock" "tray" ];
+ mpd = {
+ format = "{stateIcon} {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) [{songPosition}|{queueLength}] 🎵";
+ format-disconnected = "Disconnected 🎵";
+ format-stopped = "{consumeIcon}Stopped 🎵";
+ unknown-tag = "N/A";
+ interval = 2;
+ state-icons = {
+ paused = "";
+ playing = "";
+ };
+ tooltip-format = "MPD (connected)";
+ tooltip-format-disconnected = "MPD (disconnected)";
+ on-click = "foot -e ncmpcpp";
+ };
+ tray = {
+ icon-size = 21;
+ spacing = 10;
+ show-passive-items = true;
+ };
+ clock = {
+ format = "{:%H:%M\t%Y-%m-%d}";
+ tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
+ };
+ cpu = {
+ format = "{usage}% ";
+ tooltip = false;
+ };
+ memory = {
+ format = "{}% ";
+ };
+ network = {
+ format-wifi = "";
+ tooltip = false;
+ format-ethernet = "";
+ format-linked = "";
+ format-disconnected = "⚠";
+ on-click = "kcmshell5 kcm_networkmanagement";
+ };
+ pulseaudio = {
+ format = "{volume}% {icon}";
+ format-bluetooth = "{volume}% {icon}";
+ format-bluetooth-muted = " {icon}";
+ format-muted = " ";
+ format-source = "{volume}% ";
+ format-source-muted = "";
+ format-icons = {
+ headphone = "";
+ hands-free = "";
+ headset = "";
+ phone = "";
+ portable = "";
+ car = "";
+ default = ["" "" ""];
+ };
+ on-click = "pavucontrol";
+ };
+ };
+ };
+ style = ''
+ window#waybar {
+ font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ background: transparent;
+ color: #ffffff;
+ text-shadow: 1px 1px #64727D;
+ transition-property: background-color;
+ transition-duration: .5s;
+ }
+ button {
+ border: none;
+ border-radius: 0;
+ }
+ button:hover {
+ background: inherit;
+ box-shadow: inset 0 -3px #ffffff;
+ }
+ #workspaces button {
+ padding: 0 5px;
+ text-shadow: 1px 1px #64727D;
+ background-color: transparent;
+ color: #ffffff;
+ }
+ #workspaces button:hover {
+ background: rgba(0, 0, 0, 0.2);
+ }
+ #workspaces button.focused {
+ background: transparent;
+ box-shadow: inset 0 -3px #ffffff;
+ }
+ #workspaces button.urgent {
+ background-color: #eb4d4b;
+ }
+ #clock,
+ #cpu,
+ #memory,
+ #disk,
+ #network,
+ #pulseaudio,
+ #wireplumber,
+ #custom-media,
+ #tray,
+ #mode,
+ #scratchpad,
+ #mpd {
+ padding: 0 10px;
+ }
+ #window,
+ #workspaces {
+ margin: 0 4px;
+ }
+ .modules-left > widget:first-child > #workspaces {
+ margin-left: 0;
+ }
+
+ /* If workspaces is the rightmost module, omit right margin */
+ .modules-right > widget:last-child > #workspaces {
+ margin-right: 0;
+ }
+ #tray > .passive {
+ -gtk-icon-effect: dim;
+ }
+ #tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ }
+ #scratchpad {
+ background: rgba(0, 0, 0, 0.2);
+ }
+
+ #scratchpad.empty {
+ background-color: transparent;
+ }
+ '';
+ };
+
+ programs.fastfetch = {
+ enable = true;
+ settings = {
+ logo = {
+ type = "raw";
+ source = "~/.config/fastfetch/logo.sixel";
+ width = 40;
+ height = 19;
+ };
+ display = {
+ separator = " ";
+ };
+ modules = [
+ "title"
+ {
+ type = "custom";
+ format = "──────────────────────────────────";
+ }
+ {
+ type = "os";
+ key = "";
+ }
+ {
+ type = "kernel";
+ key = "󰞸";
+ }
+ {
+ type = "uptime";
+ key = "";
+ }
+ {
+ type = "packages";
+ key = "";
+ }
+ {
+ type = "shell";
+ key = "";
+ }
+ {
+ type = "display";
+ key = "󰍹";
+ }
+ {
+ type = "wm";
+ key = "";
+ }
+ {
+ type = "terminal";
+ key = "";
+ }
+ {
+ type = "cpu";
+ key = "";
+ }
+ {
+ type = "gpu";
+ key = "";
+ }
+ {
+ type = "memory";
+ key = "";
+ }
+ {
+ type = "disk";
+ key = "";
+ }
+ {
+ type = "locale";
+ key = "";
+ }
+ "break"
+ "colors"
+ ];
+ };
+ };
+
+ programs.zsh = {
+ enable = true;
+ autocd = true;
+ autosuggestion = {
+ enable = true;
+ # highlight = "fg=#ff00ff,bg=cyan,bold,underline";
+ };
+ defaultKeymap = "viins";
+ history = {
+ append = true;
+ ignoreAllDups = true;
+ };
+ shellAliases = {
+ "ll" = "ls -alF";
+ "la" = "ls -a";
+ "l" = "ls -F";
+ "sl" = "ls";
+ };
+ syntaxHighlighting.enable = true;
+ initExtra = ''
+ which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s"
+ which eza &> /dev/null && alias ls=eza
+ which nvim &> /dev/null && alias vi=nvim && alias vim=nvim
+ parse_git_dirty() {
+ git_status="$(git status 2> /dev/null)"
+ [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f"
+ [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f"
+ [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f"
+ [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f"
+ }
+ setopt prompt_subst
+ autoload -Uz vcs_info
+ precmd () { vcs_info }
+ zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main)
+ PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ '
+ '';
+ profileExtra = ''
+ if [ ! -S ~/.ssh/ssh_auth_sock ]; then
+ eval `ssh-agent` > /dev/null
+ ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
+ fi
+ export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
+ '';
+ };
+
+ programs.git = {
+ enable = true;
+ userName = "Jacob Janzen";
+ userEmail = "jacob.a.s.janzen@gmail.com";
+ };
+
+ programs.foot.enable = true;
+ programs.foot.settings = {
+ main = {
+ font = "SauceCodePro Nerd Font:size=10";
+ pad = "6x6";
+ };
+ mouse = {
+ hide-when-typing = "yes";
+ };
+ colors = {
+ alpha = "0.9";
+ background = "ece0c9";
+ foreground = "191916";
+ regular0 = "191916";
+ regular1 = "ac4438";
+ regular2 = "354d52";
+ regular3 = "ba9151";
+ regular4 = "465b91";
+ regular5 = "5b5489";
+ regular6 = "4e6062";
+ regular7 = "c9ad7a";
+ bright0 = "293c3c";
+ bright1 = "d8611c";
+ bright2 = "4b7b53";
+ bright3 = "d8974b";
+ bright4 = "2f3d91";
+ bright5 = "735e82";
+ bright6 = "6b8f92";
+ bright7 = "ece0c9";
+ };
+ };
+
+ wayland.windowManager.hyprland.enable = true;
+ wayland.windowManager.hyprland.settings = {
+ monitor = [ "DP-2, 2560x1440@180, 0x0, 1" "HDMI-A-2, 1920x1080@60, -1080x-100, 1, transform, 3" ];
+ "$terminal" = "foot";
+ "$fileManager" = "dolphin";
+ "$menu" = "fuzzel";
+ exec-once = [
+ "nm-applet &"
+ "blueman-applet &"
+ "waybar"
+ "mako"
+ "emacs --daemon"
+ "swaybg -m fill -i ~/.wallpaper"
+ "mpdscribble"
+ ];
+ env = [
+ "XCURSOR_SIZE,24"
+ "HYPRCURSOR_SIZE,24"
+ ];
+ general = {
+ gaps_in = 5;
+ gaps_out = 20;
+ border_size = 2;
+ resize_on_border = false;
+ layout = "dwindle";
+ "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
+ "col.inactive_border" = "rgba(595959aa)";
+ };
+ decoration = {
+ rounding = 10;
+ active_opacity = 1.0;
+ inactive_opacity = 1.0;
+ drop_shadow = true;
+ shadow_range = 4;
+ shadow_render_power = 3;
+ "col.shadow" = "rgba(1a1a1aee)";
+ blur = {
+ enabled = true;
+ size = 3;
+ passes = 1;
+ vibrancy = "0.1696";
+ };
+ };
+ animations = {
+ enabled = true;
+ bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
+ animation = [
+ "windows, 1, 7, myBezier"
+ "windowsOut, 1, 7, default, popin 80%"
+ "border, 1, 10, default" "borderangle, 1, 8, default"
+ "fade, 1, 7, default" "workspaces, 1, 6, default"
+ ];
+ };
+ dwindle = {
+ pseudotile = true;
+ preserve_split = true;
+ };
+ master = {
+ new_status = "master";
+ };
+ input = {
+ kb_layout = "us";
+ follow_mouse = 1;
+ sensitivity = 0;
+ };
+ "$mainMod" = "SUPER";
+ bind = [
+ "$mainMod, RETURN, exec, $terminal"
+ "$mainMod SHIFT, Q, killactive"
+ "$mainMod, E, exec, $fileManager"
+ "$mainMod SHIFT, SPACE, togglefloating"
+ "$mainMod, D, exec, $menu"
+ "$mainMod, P, pseudo"
+ "$mainMod SHIFT, E, togglesplit"
+ "$mainMod, H, movefocus, l"
+ "$mainMod, J, movefocus, d"
+ "$mainMod, K, movefocus, u"
+ "$mainMod, L, movefocus, r"
+ "$mainMod, 1, workspace, 1"
+ "$mainMod, 2, workspace, 2"
+ "$mainMod, 3, workspace, 3"
+ "$mainMod, 4, workspace, 4"
+ "$mainMod, 5, workspace, 5"
+ "$mainMod, 6, workspace, 6"
+ "$mainMod, 7, workspace, 7"
+ "$mainMod, 8, workspace, 8"
+ "$mainMod, 9, workspace, 9"
+ "$mainMod, 0, workspace, 10"
+ "$mainMod SHIFT, 1, movetoworkspace, 1"
+ "$mainMod SHIFT, 2, movetoworkspace, 2"
+ "$mainMod SHIFT, 3, movetoworkspace, 3"
+ "$mainMod SHIFT, 4, movetoworkspace, 4"
+ "$mainMod SHIFT, 5, movetoworkspace, 5"
+ "$mainMod SHIFT, 6, movetoworkspace, 6"
+ "$mainMod SHIFT, 7, movetoworkspace, 7"
+ "$mainMod SHIFT, 8, movetoworkspace, 8"
+ "$mainMod SHIFT, 9, movetoworkspace, 9"
+ "$mainMod SHIFT, 0, movetoworkspace, 10"
+ "$mainMod CONTROL, L, exec, hyprlock"
+ "$mainMod, S, exec, hyprshot -m window --clipboard-only"
+ "$mainMod SHIFT, S, exec, hyprshot -m region --clipboard-only"
+ "$mainMod SHIFT CONTROL, S, exec, hyprshot -m output --clipboard-only"
+ ];
+ bindel = [
+ ",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
+ ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+ ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ ",XF86Eject, exec, mpc toggle"
+ ];
+ bindm = [
+ "$mainMod, mouse:272, movewindow"
+ "$mainMod, mouse:273, resizewindow"
+ ];
+ windowrulev2 = "suppressevent maximize, class:.*";
+ };
+ wayland.windowManager.hyprland.extraConfig = ''
+###################
+### KEYBINDINGS ###
+###################
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod, M, exit,
+ '';
+
+ home.stateVersion = "24.05";
+
+ programs.home-manager.enable = true;
+}
diff --git a/nixos/profile.org b/nixos/profile.org
new file mode 120000
index 0000000..7db75e0
--- /dev/null
+++ b/nixos/profile.org
@@ -0,0 +1 @@
+../common/profile.org \ No newline at end of file