diff --git a/configuration.pc.nix b/configuration.pc.nix new file mode 100644 index 0000000..f2466c4 --- /dev/null +++ b/configuration.pc.nix @@ -0,0 +1,201 @@ +# 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’). + +{ config, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nixos"; # 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 = "America/Denver"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + i18n.inputMethod.enable = true; + i18n.inputMethod.type = "ibus"; + i18n.inputMethod.ibus.engines = with pkgs.ibus-engines; [ mozc ]; + + # Enable the X11 windowing system. + services.xserver.enable = true; + + # Enable the GNOME Desktop Environment. + services.displayManager.gdm.enable = true; + services.desktopManager.gnome.enable = true; + + services.keyd = { + enable = true; + keyboards.default = { + ids = [ "*" ]; + settings = { + main.capslock = "overload(control, esc)"; + + # Emacs bindings (Dvorak physical positions) + # Use Alt-Backspace for delete-word (works everywhere natively) + control = { + a = "home"; # C-a → Home + d = "end"; # C-e → End (dvorak 'e' = qwerty 'd') + r = "up"; # C-p → Up (dvorak 'p' = qwerty 'r') + l = "down"; # C-n → Down (dvorak 'n' = qwerty 'l') + j = "backspace"; # C-h → Backspace (dvorak 'h' = qwerty 'j') + m = "enter"; # C-m → Enter + }; + + # macOS-style Super/Cmd shortcuts (Dvorak physical positions) + meta = { + a = "C-a"; # Cmd+a → select all + i = "C-i"; # Cmd+c → copy (dvorak 'c' = qwerty 'i') + k = "C-k"; # Cmd+t → new tab (dvorak 't' = qwerty 'k') + l = "C-l"; # Cmd+n → new window (dvorak 'n' = qwerty 'l') + comma = "C-comma"; # Cmd+w → close tab (dvorak 'w' = qwerty ',') + period = "C-period"; # Cmd+v → paste (dvorak 'v' = qwerty '.') + semicolon = "C-semicolon"; # Cmd+s → save (dvorak 's' = qwerty ';') + slash = "C-slash"; # Cmd+z → undo (dvorak 'z' = qwerty '/') + x = "C-x"; # Cmd+q → quit (dvorak 'q' = qwerty 'x') + b = "C-b"; # Cmd+x → cut (dvorak 'x' = qwerty 'b') + }; + }; + }; + }; + + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = "dvorak"; + }; + + services.sunshine = { + enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; + }; + services.udev.packages = with pkgs; [ sunshine ]; + security.polkit.enable = true; + + # Configure console keymap + console.keyMap = "dvorak"; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable sound with pipewire. + services.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # If you want to use JACK applications, uncomment this + #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; + }; + + # Enable touchpad support (enabled default in most desktopManager). + # services.xserver.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.dustinswan = { + isNormalUser = true; + description = "Dustin Swan"; + extraGroups = [ "networkmanager" "wheel" ]; + shell = pkgs.fish; + packages = with pkgs; [ + # thunderbird + ]; + }; + + programs.fish.enable = true; + programs.steam.enable = true; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + vim + git + # wget + ]; + + # 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 = [ + 24800 # Deskflow + 24801 # Deskflow + # 47984 # Sunshine + # 47989 # Sunshine + # 47990 # Sunshine + # 48010 # Sunshine + 53317 # LocalSend + ]; + + networking.firewall.allowedUDPPorts = [ + 24800 # Deskflow + 24801 # Deskflow + # 47998 # Sunshine + # 47999 # Sunshine + # 48000 # Sunshine + # 48002 # Sunshine + # 48010 # Sunshine + 53317 # LocalSend + ]; + # 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.11"; # Did you read the comment? + +} diff --git a/home-cli.nix b/home-cli.nix index 02351c3..8ba5bba 100644 --- a/home-cli.nix +++ b/home-cli.nix @@ -126,6 +126,11 @@ in programs.fish = { enable = true; + shellAbbrs = { + nrs = "sudo nixos-rebuild switch"; + nrsu = "sudo nixos-rebuild switch --upgrade"; + hms = "home-manager switch"; + }; plugins = [ { name = "plugin-git"; diff --git a/polybar b/polybar deleted file mode 100644 index 183fdc8..0000000 --- a/polybar +++ /dev/null @@ -1,289 +0,0 @@ -[bar/top] -; monitor = eDP-1 -width = 100% -height = 34 - -background = #00000000 -foreground = #eeffffff - -line-color = ${bar/top.background} -line-size = 2 - -spacing = 1 -padding-right = 3 -module-margin = 2 - -font-0 = Iosevka Nerd Font:size=8; -font-1 = Iosevka Nerd Font:size=9; -font-2 = Iosevka Nerd Font:size=11; - -modules-left = i3 mpd -modules-right = backlight temperature cpu memory volume wireless-network wired-network battery date powermenu - -tray-position = right -tray-scale = 0.9 -tray-padding = 5 - -[module/backlight] -type = internal/xbacklight -format = - -ramp-0 =  -ramp-1 =  -ramp-2 =  - -bar-width = 10 -bar-indicator = | -bar-indicator-font = 2 -bar-indicator-foreground = #ff -bar-fill = ─ -bar-fill-font = 2 -bar-fill-foreground = #c9665e -bar-empty = ─ -bar-empty-font = 2 -bar-empty-foreground = #44 - -[module/battery] -type = internal/battery -full-at = 98 - -format-charging = -format-discharging = -format-full = - -ramp-capacity-0 =  -ramp-capacity-0-foreground = #f53c3c -ramp-capacity-1 =  -ramp-capacity-1-foreground = #ffa900 -ramp-capacity-2 =  -ramp-capacity-3 =  -ramp-capacity-4 =  - -bar-capacity-width = 10 -bar-capacity-format = %{+u}%{+o}%fill%%empty%%{-u}%{-o} -bar-capacity-fill = █ -bar-capacity-fill-foreground = #ddffffff -bar-capacity-fill-font = 2 -bar-capacity-empty = █ -bar-capacity-empty-font = 2 -bar-capacity-empty-foreground = #44ffffff - -animation-charging-0 =  -animation-charging-1 =  -animation-charging-2 =  -animation-charging-3 =  -animation-charging-4 =  -animation-charging-framerate = 750 - -[module/i3] -type = internal/i3 - -ws-icon-0 = 1;%{T3}%{T-} -ws-icon-1 = 2;%{T3}爵%{T-} -ws-icon-2 = 3;%{T3}%{T-} -ws-icon-3 = 4;%{T2}%{T-} -ws-icon-4 = 5;%{T2}%{T-} -ws-icon-5 = 6;%{T3}%{T-} -ws-icon-6 = 7;%{T3}%{T-} -ws-icon-7 = 8;%{T2}%{T-} -ws-icon-default = %{T2}%{T-} - -format = - -label-dimmed-underline = #ff0000ff - -label-focused = %icon% -label-focused-foreground = #fff -label-focused-background = #773f3f3f -label-focused-underline = #c9665e -label-focused-padding = 2 - -label-unfocused = %icon% -label-unfocused-foreground = #dd -label-unfocused-underline = #666 -label-unfocused-padding = 2 - -label-urgent = %icon% -label-urgent-foreground = #000000 -label-urgent-background = #bd2c40 -label-urgent-underline = #9b0a20 -label-urgent-padding = 2 - -label-visible = %icon% -label-visible-foreground = #55 -label-visible-padding = 2 - -[module/cpu] -type = internal/cpu -;interval = 1.0 -format =