commit beaf5202ca9b5b0a37001497f4924744fc25557a Author: Greg Leyda Date: Sat Jul 9 11:27:58 2022 -0400 flakes diff --git a/boot.nix b/boot.nix new file mode 100755 index 0000000..8098592 --- /dev/null +++ b/boot.nix @@ -0,0 +1,31 @@ +{pkgs, config, lib, modulesPath, ...}: +{ +## NEED THIS OR WONT BOOT +imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; +### NEED THIS OR WONT BOOT + boot = { + kernelPackages = pkgs.linuxPackages_latest; + initrd = { + availableKernelModules = [ "nvme" "xhci_pci" "ahci" "uas" "usb_storage" "sd_mod" ]; + kernelModules = []; + }; + kernelModules = [ "kvm-amd" ]; + blacklistedKernelModules = [ "nouveau" "lbm-nouveau" "pcspkr" ]; + extraModprobeConfig = ""; + kernelParams = [ "fbcon=nodefer" "bgrt_disable" "quiet" "splash" ]; + plymouth = { + enable = true; + theme = "breeze"; + logo = ./images/nixos.png; + }; + loader = { + systemd-boot = { + enable = true; + consoleMode = "max"; + editor = false; + }; + efi.canTouchEfiVariables = true; + timeout = 0; + }; + }; +} diff --git a/configuration.nix b/configuration.nix new file mode 100755 index 0000000..62d55d5 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,76 @@ +{ config, pkgs, callPackage, lib, ... }: +{ + #important stuff first + imports = + [ + ./boot.nix + ./prime.nix + ./networking.nix + ./packages.nix + ./fonts.nix + ./thunar.nix + ]; + nix = { + package = pkgs.nixFlakes; + extraOptions = '' + experimental-features = nix-command flakes + ''; + }; + services.xserver = import ./xserver.nix; + fileSystems = import ./fileSystems.nix; + system.stateVersion = "22.11"; + hardware.cpu.amd.updateMicrocode = true; + # end important stuff + qt5 = { + enable = true; + style = "gtk2"; + platformTheme = "gtk2"; + }; + programs = { + zsh.enable = true; + dconf.enable = true; + }; + time.timeZone = "America/New_York"; + services = { + gvfs.enable = true; + timesyncd = { + enable = true; + servers = [ + "time.google.com" + "time2.google.com" + ]; + }; + }; + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + useXkbConfig = true; + }; + + # Enable sound. + security.rtkit.enable = true; + hardware.pulseaudio = { + enable = true; + support32Bit = true; + package = pkgs.pulseaudioFull; + }; + nixpkgs.config.pulseaudio = true; + # user managment + users = { + defaultUserShell = pkgs.zsh; + users.gerg = { + isNormalUser = true; + extraGroups = [ "wheel" "audio" "networkmanager"]; + }; + }; + + #enable ssh + programs.mtr.enable = true; + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + services.openssh.enable = true; +} + diff --git a/fileSystems.nix b/fileSystems.nix new file mode 100755 index 0000000..db49ce6 --- /dev/null +++ b/fileSystems.nix @@ -0,0 +1,11 @@ +{ + "/" = + { device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; + + "/boot" = + { device = "/dev/disk/by-label/BOOT"; + fsType = "vfat"; + }; +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..ccfa685 --- /dev/null +++ b/flake.nix @@ -0,0 +1,46 @@ +{ + description = "testing"; + inputs = { + nixpkgs.url = "nixpkgs/master"; + home-manager.url = "github:nix-community/home-manager/master"; + home-manager.inputs.nixkpkgs.follows = "nixpkgs"; + }; + + outputs = { nixpkgs, home-manager, ... }: + let + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config = { + allowUnfree = true; + packageOverrides = super: let self = super.pkgs; in { + nerdfonts-overpass = self.nerdfonts.override { + fonts = [ "Overpass" ]; + }; + }; + }; + }; + lib = nixpkgs.lib; + in { + homeManagerConfiguration = { + gerg = home-manager.lib.homeManagerConfiguration { + inherit system pkgs; + username = "gerg"; + homeDirectory = "/home/gerg"; + configuration = { + imports = [ + ./home-manager.nix + ]; + }; + }; + }; + nixosConfigurations = { + gerg-laptop = lib.nixosSystem { + inherit system pkgs; + modules = [ + ./configuration.nix + ]; + }; + }; + }; +} diff --git a/fonts.nix b/fonts.nix new file mode 100755 index 0000000..8b8fc46 --- /dev/null +++ b/fonts.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: +{ + fonts = { + fonts = with pkgs; [overpass nerdfonts-overpass material-design-icons]; + fontconfig = { + enable = true; + defaultFonts = { + serif = ["Overpass" "Overpass Nerd Font" "Material Design Icons"]; + sansSerif = ["Overpass" "Overpass Nerd Font" "Material Design Icons"]; + monospace = ["Overpass Mono" "OverpassMono Nerd Font" "Material Design Icons" ]; + }; + }; + }; +} diff --git a/home-manager.nix b/home-manager.nix new file mode 100755 index 0000000..5b5b6e4 --- /dev/null +++ b/home-manager.nix @@ -0,0 +1,26 @@ +{config, pkgs, home-manager, ...}: +{ + imports = [ + ./home-manager/zsh.nix + ./home-manager/firefox.nix + ./home-manager/bspwm.nix + ./home-manager/sxhkd.nix + ./home-manager/rofi.nix + ./home-manager/polybar.nix + ./home-manager/dunst.nix + ./home-manager/alacritty.nix + ./home-manager/theme.nix + ./home-manager/picom.nix + ]; + programs.home-manager.enable = true; + home = { + stateVersion = "22.11"; + file = { + ".background-image".source = ./images/stars.jpg; + ".config" = { + source = ./home/.config; + recursive = true; + }; + }; + }; +} diff --git a/home-manager/alacritty.nix b/home-manager/alacritty.nix new file mode 100644 index 0000000..fd877c2 --- /dev/null +++ b/home-manager/alacritty.nix @@ -0,0 +1,34 @@ +{ + programs.alacritty = { + enable = true; + settings = { + font.size = 9; + colors = { + primary = { + background = "0x000000"; + foreground = "0xa9b1d6"; + }; + normal = { + black = "0x32344a"; + red = "0xf7768e"; + green = "0x9ece6a"; + yellow = "0xe0af68"; + blue = "0x7aa2f7"; + magenta = "0xad8ee6"; + cyan = "0x449dab"; + white = "0x787c99"; + }; + bright = { + black = "0x444b6a"; + red = "0xff7a93"; + green = "0xb9f27c"; + yellow = "0xff9e64"; + blue = "0x7da6ff"; + magenta = "0xbb9af7"; + cyan = "0x0db9d7"; + white = "0xacb0d0"; + }; + }; + }; + }; +} diff --git a/home-manager/bspwm.nix b/home-manager/bspwm.nix new file mode 100755 index 0000000..b1a3ad5 --- /dev/null +++ b/home-manager/bspwm.nix @@ -0,0 +1,29 @@ +{config, pkgs, lib, ...}: +{ + xsession.windowManager.bspwm = { + enable = true; + startupPrograms = [ + "polybar left" + "polybar middle" + "polybar right" + "xfce4-power-manager" + "xsetroot -cursor_name left_ptr" + "xsetroot -solid \"#000000\"" + "flashfocus" + ]; + settings = { + border_width = 0; + window_gap = 20; + border_radius = 15; + normal_border_color = "\#c0caf5"; + active_border_color = "\#c0caf5"; + focused_border_color = "\#c0caf5"; + spilt_ratio = 0.52; + borderless_monocle = true; + gapless_monocle = true; + }; + monitors = { + eDP-1 = [ "I" "II" "III" "IV" "V" ]; + }; + }; +} diff --git a/home-manager/dunst.nix b/home-manager/dunst.nix new file mode 100755 index 0000000..2fae6c2 --- /dev/null +++ b/home-manager/dunst.nix @@ -0,0 +1,82 @@ +{ pkgs, ... }: +{ + services.dunst = { + enable = true; + iconTheme = { + name = "Papirus"; + package = pkgs.papirus-icon-theme; + size = "128X128"; + }; + settings = { + global = { + monitor = 0; + follow = "none"; + width = 400; + height = 500; + orgin = "bottom-right"; + offset = "20x80"; + scale = 0; + notification_limit = 0; + progress_bar = true; + progress_bar_height = 10; + progress_bar_frame_width = 1; + progress_bar_max_width = 300; + indicate_hidden = "yes"; + transparency = 0; + separator_height =2; + padding = 8; + horizontal_padding = 8; + text_icon_padding = 0; + frame_width = 3; + frame_color = "#7aa2f7"; + gap_size = 0; + separator_color = "frame"; + sort = "yes"; + font = "Sofia Pro 16"; + line_height = 0; + markup = "full"; + format = ''%s\n%b''; + alignment = "left"; + vertical_alignment = "center"; + show_age_threshold = 60; + ellipsize = "middle"; + ignore_newline = "no"; + stack_duplicates = true; + hide_duplicate_count = false; + show_indicators = "yes"; + icon_position = "left"; + min_icon_size = 128; + max_icon_size = 300; + always_run_scripts = true; + sticky_history = "yes"; + history_length = 20; + always_run_script = true; + title = "Dunst"; + class = "Dunst"; + corner_radius = 15; + ignore_dbusclose = false; + mouse_left_click = "close_current"; + mouse_middle_click = "context"; + mouse_right_click = "do_action"; + }; + urgency_low = { + background = "#000000"; + foreground = "#7aa2f7"; + frame_color = "#7aa2f7"; + timeout = 10; + }; + urgency_normal = { + background = "#000000"; + foreground = "#7aa2f7"; + frame_color = "#7aa2f7"; + timeout = 10; + }; + urgency_critical = { + background = "#000000"; + foreground = "#ad032e"; + frame_color = "#ad032e"; + timeout = 10; + }; + }; + }; +} diff --git a/home-manager/firefox.nix b/home-manager/firefox.nix new file mode 100755 index 0000000..3d2ef21 --- /dev/null +++ b/home-manager/firefox.nix @@ -0,0 +1,19 @@ +{pkgs, ...}:{ + programs = { + firefox = { + enable = true; + profiles = { + gerg = { + name = "gerg"; + extraConfig = ( builtins.readFile + (pkgs.fetchFromGitHub { + owner = "ISnortPennies"; + repo = "user.js"; + rev = "master"; + sha256 = "BMEUZDelkcHDF8Yt9aa+3pGkGkodL7VEQ1hQBU6Fuug="; + } + "/user.js") ); + }; + }; + }; + }; +} diff --git a/home-manager/picom.nix b/home-manager/picom.nix new file mode 100644 index 0000000..f271738 --- /dev/null +++ b/home-manager/picom.nix @@ -0,0 +1,61 @@ +{ + services.picom = { + enable = true; + activeOpacity = "1.0"; + backend = "glx"; + blur = false; + blurExclude = [ + "window_type = 'dock'" + "window_type = 'menu'" + "class_g = 'firefox'" + ]; + experimentalBackends = false; + fade = true; + fadeDelta = 4; + fadeSteps = [ "0.03" "0.03" ]; + inactiveOpacity = "1.0"; + menuOpacity = "1.0"; + shadow = true; + noDockShadow = true; + shadowExclude = [ "window_type = 'menu'" "class_g = 'firefox'" ]; + shadowOffsets = [ 25 25 ]; + shadowOpacity = "0.5"; + vSync = false; + extraOptions = '' +animations: true; +animation-stiffness = 200 +animation-window-mass = 0.4 +animation-dampening = 20 +animation-clamping = false +animation-for-open-window = "zoom"; +animation-for-unmap-window = "zoom"; +animation-for-workspace-switch-in = "slide-down"; +animation-for-workspace-switch-out = "zoom"; +animation-for-transient-window = "slide-up"; + +shadow-radius = 25; +frame-opacity = 1.0; +inactive-opacity-override = false; +corner-radius = 15; +rounded-corners-exclude = [ + "window_type = 'desktop'", + "window_type = 'tooltip'", +]; +mark-wmwin-focused = true; +mark-ovredir-focused = true; +detect-rounded-corners = true; +detect-client-opacity = true; +detect-transient = true; +use-damage = true; +log-level = "warn"; +wintypes: +{ + tooltip = { fade = true; shadow = false; opacity = 1.0; focus = true; full-shadow = false; }; + dock = { shadow = true; } + dnd = { shadow = true; } + popup_menu = { opacity = 1.0; } + dropdown_menu = { opacity = 1.0; } +}; + ''; + }; +} diff --git a/home-manager/polybar.nix b/home-manager/polybar.nix new file mode 100755 index 0000000..f47f0b0 --- /dev/null +++ b/home-manager/polybar.nix @@ -0,0 +1,314 @@ + +{pkgs , ... }: +{ + services.polybar = { + enable = true; + package = pkgs.polybarFull; + script = "polybar left & \n polybar middle & \n polybar right &"; + settings = { + "settings" = { + screenchange.reload = true; + pseudo.transparency =false; + }; + "colors" = { + background = "#000000"; + foreground = "#495eb8"; + blue = "#7aa2f7"; + alert = "#ad032e"; + deepblue = "#03339c"; + }; + "bar/left" = { + width = "180px"; + offset.x = 20; + modules.center = "xworkspaces"; + height = "20pt"; + radius = 6; + fixed.center = false; + dpi = 96; + offset.y = 20; + font = [ "Overpass Nerd Font:style=Regular:size=14;4" "Material Design Icons:style=Regular:size=16;4" ]; + background = "\${colors.background}"; + foreground = "\${colors.foreground}"; + line.size = "3pt"; + border = { + size = "7pt"; + color = "\${colors.background}"; + radius = 15; + }; + padding = { + left = 0; + right = 0; + }; + cursor = { + click = "pointer"; + scroll = "ns-resize"; + }; + enable.ipc = true; + wm.restack = "bspwm"; + }; + "bar/middle" = { + width = "130px"; + offset.x = 895; + modules.center = "date"; + height = "20pt"; + radius = 6; + fixed.center = false; + dpi = 96; + offset.y = 20; + font = [ "Overpass Nerd Font:style=Regular:size=14;4" "Material Design Icons:style=Regular:size=16;4" ]; + background = "\${colors.background}"; + foreground = "\${colors.foreground}"; + line.size = "3pt"; + border = { + size = "7pt"; + color = "\${colors.background}"; + radius = 15; + }; + padding = { + left = 0; + right = 0; + }; + cursor = { + click = "pointer"; + scroll = "ns-resize"; + }; + enable.ipc = true; + wm.restack = "bspwm"; + }; + "bar/right" = { + width = "180px"; + offset.x = 1720; + modules.center = "tray pulseaudio network battery powermenu"; + height = "20pt"; + radius = 6; + fixed.center = false; + dpi = 96; + offset.y = 20; + font = [ "Overpass Nerd Font:style=Regular:size=14;4" "Material Design Icons:style=Regular:size=16;4" ]; + background = "\${colors.background}"; + foreground = "\${colors.foreground}"; + line.size = "3pt"; + border = { + size = "7pt"; + color = "\${colors.background}"; + radius = 15; + }; + padding = { + left = 0; + right = 0; + }; + cursor = { + click = "pointer"; + scroll = "ns-resize"; + }; + enable.ipc = true; + wm.restack = "bspwm"; + }; + "bar/tray" = { + width = "180px"; + offset.x = 1540; + module.margin.left = 0; + module.margin.right = 0; + modules.right = "sep"; + tray = { + position = "right"; + detached = false; + offset.x = 0; + offset.y = 0; + padding = 1; + maxsize = 180; + scale = "1.0"; + background = "\${colors.background}"; + transparent = false; + }; + height = "20pt"; + radius = 6; + fixed.center = false; + dpi = 96; + offset.y = 20; + font = [ "Overpass Nerd Font:style=Regular:size=14;4" "Material Design Icons:style=Regular:size=16;4" ]; + background = "\${colors.background}"; + foreground = "\${colors.foreground}"; + line.size = "3pt"; + border = { + size = "7pt"; + color = "\${colors.background}"; + radius = 15; + }; + padding = { + left = 0; + right = 0; + }; + cursor = { + click = "pointer"; + scroll = "ns-resize"; + }; + enable.ipc = true; + wm.restack = "bspwm"; + }; + "module/sep" = { + type = "custom/text"; + content = { + text = " "; + background = "\${colors.background}"; + foreground = "\${colors.foreground}"; + }; + }; + "module/xworkspaces" = { + type = "internal/xworkspaces"; + label = { + active = { + text = ""; + foreground = "\${colors.blue}"; + background = "\${colors.background}"; + padding = 2; + }; + occupied = { + text = ""; + foreground = "\${colors.deepblue}"; + background = "\${colors.background}"; + padding = 2; + }; + urgent = { + text = ""; + foreground = "\${colors.alert}"; + background = "\${colors.background}"; + padding = 2; + }; + empty = { + text = ""; + foreground = "\${colors.background}"; + background = "\${colors.background}"; + padding = 2; + }; + }; + }; + "module/date" = { + type = "internal/date"; + interval = 1; + date = { + text = "\"%I:%M %p\""; + alt = "\"%a, %B %d\""; + }; + label = { + text = "\"%date%%{A}\""; + foreground = "\${colors.foreground}"; + background = "\${colors.background}"; + }; + }; + "module/tray" = { + type = "custom/text"; + content = " "; + click.left = "\$HOME/.config/polybar/scripts/tray"; + label = { + padding = 3; + background = "\${colors.background}"; + }; + }; + "module/network" = { + type = "internal/network"; + interface.type = "wireless"; + interval = "3.0"; + udspeed.minwidth = 5; + accumulate.stats = true; + unknown.as.up = true; + format = { + connected = "\"%{A1:networkmanager_dmenu:}%{A}\""; + disconnected = "\"%{A1:networkmanager_dmenu:}%{A}\""; + }; + label.disconnected = { + text = "󰤭"; + foreground = "\${colors.alert}"; + background = "\${colors.background}"; + padding = 1; + }; + ramp.signal = { + text = ["󰤯" "󰤟" "󰤢" "󰤥" "󰤨"]; + foreground = "\${colors.foreground}"; + background = "\${colors.background}"; + padding = 1; + }; + }; + "module/powermenu" = { + type = "custom/text"; + content = { + text = ""; + foreground = "\${colors.alert}"; + background = "\${colors.background}"; + padding = 3; + }; + click.left = "\$HOME/.config/rofi/powermenu/powermenu.sh"; + }; + "module/battery" = { + type = "internal/battery"; + full.at = 100; + low.at = 20; + battery = "BAT0"; + adapter = "ACAD"; + poll.interval = 5; + format = { + charging = "\"%{A1:xfce4-power-menu -c:}%{A}\""; + discharging = "\"%{A1:xfce4-power-menu -c:}%{A}\""; + low = "\"%{A1:xfce4-power-menu -c:}%{A}\""; + full = "\"%{A1:xfce4-power-menu -c:}%{A}\""; + }; + label = { + charging = { + text = "\"%percentage%%\""; + padding = 1; + }; + discharging = { + text = "\"%percentage%%\""; + padding = 1; + }; + low = { + text = "\"%percentage%%\""; + padding = 1; + }; + }; + animation = { + charging = { + text = [ "  " "  " "  " "  " "  " ]; + foreground = "\${colors.deepblue}"; + background = "\${colors.background}"; + framerate = 750; + }; + discharging.framerate = 500; + low = { + text = [ " " " " ]; + framerate = 200; + foreground = "\${colors.alert}"; + background = "\${colors.background}"; + }; + }; + ramp.capacity = { + text = [ "  " "  " "  " "  " "  " ]; + background = "\${colors.background}"; + }; + }; + "module/pulseaudio" = { + type = "internal/pulseaudio"; + use.ui.max = false; + interval = 5; + format = { + volume = "\"%{A1:pavucontrol:}%{A}\""; + muted = "\"%{A1:pavucontrol:}%{A}\""; + }; + label = { + muted = { + text = "ﱝ"; + foreground = "\${colors.alert}"; + background = "\${colors.background}"; + padding = 1; + }; + }; + ramp.volume = { + text = [ "奄" "奔" "墳" ]; + background = "\${colors.background}"; + padding = 1; + click.right = "amixer sset Master toggle"; + }; + }; + }; + }; +} diff --git a/home-manager/rofi.nix b/home-manager/rofi.nix new file mode 100755 index 0000000..1e80d11 --- /dev/null +++ b/home-manager/rofi.nix @@ -0,0 +1,6 @@ +{ + programs.rofi = { + enable = true; + configPath = "./.rofi"; + }; +} diff --git a/home-manager/sxhkd.nix b/home-manager/sxhkd.nix new file mode 100755 index 0000000..b3efe88 --- /dev/null +++ b/home-manager/sxhkd.nix @@ -0,0 +1,45 @@ +{ + services.sxhkd = { + enable = true; + keybindings = { + "super + Return" = "alacritty"; + "super + @space" = "rofi -show drun"; + "super + Escape" = "pkill -USR1 -x sxhkd"; + "super + alt + {q,r}" = "bspc {quit,wm -r}"; + "alt + {F4, shift + F4}" = "bspc node -{c,k}"; + "super + m" = "bspc desktop -l next"; + "super + y" = "bspc node newest.marked.local -n newest.!automatic.local"; + "super + g" = "bspc node -s biggest.window"; + "super + {t,shift + t,s,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}"; + "super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}"; + "super + {_,shift + }{h,j,k,l}" = "bspc node -{f,s} {west,south,north,east}"; + "super + {p,b,comma,period}" = "bspc node -f @{parent,brother,first,second}"; + "super + {_,shift + }c" = "bspc node -f {next,prev}.local.!hidden.window"; + "super + bracket{left,right}" = "bspc desktop -f {prev,next}.local"; + "super + {grave,Tab}" = "bspc {node,desktop} -f last"; + "super + {o,i}" = "bspc wm -h off; bspc node {older,newer} -f; bspc wm -h on"; + "super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'"; + "super + ctrl + {h,j,k,l}" = "bspc node -p {west,south,north,east}"; + "super + ctrl + {1-9}" = "bspc node -o 0.{1-9}"; + "super + ctrl + space" ="bspc node -p cancel"; + "super + ctrl + shift + space" = "bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel"; + "super + alt + {h,j,k,l}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}"; + "super + alt + shift + {h,j,k,l}" ="bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}"; + "super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}"; + "XF86AudioPlay" = "playerctl play"; + "XF86AudioPause" = "playerctl pause"; + "XF86AudioNext" = "playerctl next"; + "XF86AudioPrev" = "playerctl previous"; + "alt + Tab" = "bash ~/.config/rofi/window-switcher/window-switcher.sh"; + "ctrl + shift + Print" = "$HOME/.scripts/screenshot --full"; + "ctrl + Print" = "$HOME/.scripts/screenshot --area"; + "XF86AudioRaiseVolume" = "amixer sset Master 5%+"; + "XF86AudioLowerVolume" = "amixer sset Master 5%-"; + "XF86AudioMute" = "amixer sset Master toggle "; + "XF86MonBrightnessUp" = "brightnessctl s 20+"; + "XF86MonBrightnessDown" = "brightnessctl s 20-"; + "Print" = "maim $HOME/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg"; + "super + Print" = "maim -s $HOME/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg"; + }; + }; +} diff --git a/home-manager/theme.nix b/home-manager/theme.nix new file mode 100644 index 0000000..b399654 --- /dev/null +++ b/home-manager/theme.nix @@ -0,0 +1,18 @@ +{ pkgs, home-manager, ... }: +{ + gtk = { + enable = true; + theme = { + package = pkgs.flat-remix-gtk; + name = "Flat-Remix-GTK-Blue-Darkest"; + }; + iconTheme = { + package = pkgs.flat-remix-icon-theme; + name = "Flat-Remix-Blue-Dark"; + }; + font = { + name = "Overpass"; + size = 10; + }; + }; +} diff --git a/home-manager/zsh.nix b/home-manager/zsh.nix new file mode 100755 index 0000000..c0febc6 --- /dev/null +++ b/home-manager/zsh.nix @@ -0,0 +1,32 @@ +{ + programs = { + zsh = { + enable = true; + enableAutosuggestions = true; + enableSyntaxHighlighting = true; + completionInit = "neofetch"; + }; + starship = { + enable = true; + enableZshIntegration = true; + settings = { + add_newline = false; + format="$sudo \n $directory$git_branch$character"; + character = { + success_symbol = "[](#9ece6a bold)"; + error_symbol = "[](#db4b4b bold)"; + }; + directory = { + read_only = " "; + }; + git_branch = { + style = "bold red"; + }; + sudo ={ + format = "[ ](#7aa2f7)"; + disabled = false; + }; + }; + }; + }; +} diff --git a/home/.config/Thunar/uca.xml b/home/.config/Thunar/uca.xml new file mode 100755 index 0000000..ace2915 --- /dev/null +++ b/home/.config/Thunar/uca.xml @@ -0,0 +1,31 @@ + + + + utilities-terminal + Open Terminal Here + 1651604010244754-1 + alacritty --working-directory %f + Example for a custom action + * + + + + + folder + Root + 1651640324751320-1 + qsudo thunar %f + + * + + + + org.xfce.catfish + Search + 1651908115751880-1 + catfish --path=%f + + * + + + diff --git a/home/.config/flashfocus/flashfocus.yml b/home/.config/flashfocus/flashfocus.yml new file mode 100755 index 0000000..0ace778 --- /dev/null +++ b/home/.config/flashfocus/flashfocus.yml @@ -0,0 +1,92 @@ +## @@@@@@@@@@@@@@@@@@@@@@ +## Flashfocus config file +## @@@@@@@@@@@@@@@@@@@@@@ + +# Opacity of window during flash. +flash-opacity: 0.5 + +# Windows are restored to this opacity value at the end of a flash. +default-opacity: 1 + +# Length of flash in milliseconds. +time: 500 + +# If true, flashes are not faded out. This will improve performance but flashes +# won't be smooth. +simple: false + +# Number of animation frames in a flash. +ntimepoints: 30 + +# Set this to false if you don't want windows to flash on focus. +flash-on-focus: true + +# Set this to false if you don't want fullscreen windows to flash. +flash-fullscreen: true + +# Whether or not to flash windows if they are the only window on the desktop. +# Possible values: +# 'always': +# Always flash lone windows +# 'never': +# Never flash lone windows +# 'on_open_close': +# Lone windows will be flashed only if a) if they were just opened and b) +# if another window was just closed. +# 'on_switch': +# Lone windows will be flashed only upon switching desktops. +flash-lone-windows: 'always' + + +# Defining window-specific flash rules +# +# X11-based window managers (e.g i3, bspwm) +# ----------------------------------------- +# Flash rules are defined by matching the WM_CLASS property of a window. To get +# the WM_CLASS property use 'xprop WM_CLASS' and click on a window. The +# property is a tuple of the form (window-id, window-class). The window-class +# is usually the name of the application, but not always. +# +# +# Say I'd like to set all 'termite' windows to 80% opacity but leave other +# windows at full opacity: +# +# rules: +# - window-class: Termite +# default-opacity: 0.8 +# +# +# I also would prefer that firefox windows are not flashed on focus: +# +# rules: +# - window-class: firefox +# flash-on-focus: False +# - window-class: Termite +# default-opacity: 0.8 +# +# +# For more complicated rules, you can use (python-style) regexes: +# +# rules: +# - window-id: ^(?!termite)$ +# default-opacity: 0.8 +# +# +# Sway +# ---- +# Native wayland apps can be matched using the app_id and window name. These +# can be found using `swaymsg -t get_tree`. XWayland apps are matched with +# using WM_CLASS as above (this can also be found with `swaymsg`) +# +# Given that termite is wayland native and firefox is not, the rules above +# could instead be written: +# +# rules: +# - window-class: firefox +# flash-on-focus: False +# - app-id: termite +# default-opacity: 0.8 +# +# rules: +# - window-name: ^(?!termite)$ +# default-opacity: 0.8 diff --git a/home/.config/neofetch/config.conf b/home/.config/neofetch/config.conf new file mode 100755 index 0000000..38407eb --- /dev/null +++ b/home/.config/neofetch/config.conf @@ -0,0 +1,88 @@ +print_info() { + info title + info underline + info "OS" distro + info "Host" model + info "Kernel" kernel + info "Uptime" uptime + info "Packages" packages + info "Shell" shell + info "WM" wm + info "WM Theme" wm_theme + info "Theme" theme + info "Icons" icons + info "Terminal" term + info "CPU" cpu + info "GPU" gpu + info "Memory" memory + info "Disk" disk + info cols +} +title_fqdn="off" +kernel_shorthand="on" +distro_shorthand="tiny" +os_arch="off" +uptime_shorthand="tiny" +memory_percent="on" +memory_unit="gib" +package_managers="tiny" +shell_path="off" +shell_version="off" +speed_type="bios_limit" +speed_shorthand="on" +cpu_brand="off" +cpu_speed="off" +cpu_cores="off" +cpu_temp="C" +gpu_brand="off" +gpu_type="all" +refresh_rate="off" +gtk_shorthand="on" +gtk2="off" +gtk3="on" +public_ip_host="http://ident.me" +public_ip_timeout=2 +local_ip_interface=('auto') +de_version="off" +disk_show=('/') +disk_subtitle="dir" +disk_percent="on" +music_player="auto" +song_format="%artist% - %album% - %title%" +song_shorthand="off" +mpc_args=() +colors=(distro) +bold="on" +underline_enabled="on" +underline_char="-" +separator=":" +block_range=(0 15) +color_blocks="on" +block_width=3 +block_height=1 +col_offset="auto" +bar_char_elapsed="-" +bar_char_total="=" +bar_border="on" +bar_length=15 +bar_color_elapsed="distro" +bar_color_total="distro" +memory_display="on" +battery_display="on" +disk_display="on" +image_backend="pixterm" +image_source="auto" +ascii_distro="auto" +ascii_colors=(distro) +ascii_bold="on" +image_loop="off" +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" +crop_mode="normal" +crop_offset="center" +image_size="auto" +catimg_size="2" +gap=3 +yoffset=0 +xoffset=0 +background_color= +stdout="off" \ No newline at end of file diff --git a/home/.config/networkmanager-dmenu/config.ini b/home/.config/networkmanager-dmenu/config.ini new file mode 100755 index 0000000..9558aeb --- /dev/null +++ b/home/.config/networkmanager-dmenu/config.ini @@ -0,0 +1,25 @@ +[dmenu] +dmenu_command = rofi -dmenu -theme ~/.config/networkmanager-dmenu/networkmenu.rasi +# dmenu_command = /usr/bin/dmenu +# # Note that dmenu_command can contain arguments as well like: +# # `dmenu_command = rofi -dmenu -i -theme nmdm` +# # `dmenu_command = rofi -dmenu -width 30 -i` +# # `dmenu_command = dmenu -i -l 25 -b -nb #909090 -nf #303030` +rofi_highlight = True +# compact = # (Default: False). Remove extra spacing from display +compact = True +# pinentry = # (Default: None) e.g. `pinentry-gtk` +# wifi_chars = +# wifi_chars = 󰤯󰤟󰤢󰤨 +# list_saved = # (Default: False) list saved connections + +[dmenu_passphrase] +# # Uses the -password flag for Rofi, -x for bemenu. For dmenu, sets -nb and +# # -nf to the same color or uses -P if the dmenu password patch is applied +# # https://tools.suckless.org/dmenu/patches/password/ +# obscure = True +# obscure_color = #222222 + +[editor] +terminal = urxvt +gui_if_available = True diff --git a/home/.config/networkmanager-dmenu/networkmenu.rasi b/home/.config/networkmanager-dmenu/networkmenu.rasi new file mode 100755 index 0000000..56fe135 --- /dev/null +++ b/home/.config/networkmanager-dmenu/networkmenu.rasi @@ -0,0 +1,154 @@ +/* Copyright (C) 2020-2022 Aditya Shakya */ +/* Everyone is permitted to copy and distribute copies of this file under GNU-GPL3 */ + +configuration { + show-icons: false; + display-drun: ":"; + drun-display-format: "{name}"; + disable-history: false; + sidebar-mode: false; + location: 0; +} + +* { + BG: #000000; + BGA: #16161e; + FG: #c0caf5; + BDR: #7aa2f7; + SEL: #7aa2f7; + UGT: #db4b4b; + IMG: #db4b4b; + ON: #9ece6a; + OFF: #565f89; + font: "Sofia Pro 15"; +} +window { + transparency: "real"; + background-color: @BG; + text-color: @FG; + border-radius: 15px; + width: 400px; + height: 425px; +} + +prompt { + enabled: true; + padding: 4px 4px 6px 6px; + background-color: @BGA; + text-color: @FG; +} + +textbox-prompt-colon { + expand: false; + str: "󰖩"; + background-color: @BGA; + text-color: @IMG; + padding: 4px 0px 0px 8px; + font: "Material Design Icons Desktop 15"; +} + +inputbar { + children: [ textbox-prompt-colon, prompt, entry ]; + background-color: @BGA; + text-color: @FG; + expand: false; + border: 0px 0px 0px 0px; + border-radius: 10px; + border-color: @BDR; + margin: 0px 0px 0px 0px; + padding: 5px 0px 3px 0px; + position: center; +} + + +entry { + background-color: @BGA; + text-color: @FG; + placeholder-color: @FG; + expand: true; + horizontal-align: 0; + placeholder: ""; + blink: true; + padding: 4px 0px 0px 0px; +} + +case-indicator { + background-color: @BG; + text-color: @FG; + spacing: 0; +} + + +listview { + background-color: @BG; + columns: 1; + lines: 7; + spacing: 5px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @BG; + children: [ inputbar, listview ]; + spacing: 10px; + padding: 10px; +} + +element { + background-color: @BG; + text-color: @FG; + orientation: horizontal; + border-radius: 10px; + padding: 6px 6px 6px 6px; +} + +element-icon { + background-color: inherit; + text-color: inherit; + horizontal-align: 0.5; + vertical-align: 0.5; + size: 24px; + border: 0px; +} + +element-text { + background-color: inherit; + text-color: inherit; + expand: true; + horizontal-align: 0; + vertical-align: 0; + margin: 2px 0px 2px 2px; +} + +element normal.urgent, +element alternate.urgent { + background-color: @UGT; + text-color: @FG; + border-radius: 10px; +} + +element normal.active, +element alternate.active { + background-color: @BGA; + text-color: @FG; +} + +element selected { + background-color: @SEL; + text-color: @BG; + border: 0px; + border-radius: 10px; + border-color: @BDR; +} + +element selected.urgent { + background-color: @UGT; + text-color: @FG; +} + +element selected.active { + background-color: @BGA; + color: @FG; +} diff --git a/home/.config/polybar/scripts/tray b/home/.config/polybar/scripts/tray new file mode 100755 index 0000000..8cd6d1f --- /dev/null +++ b/home/.config/polybar/scripts/tray @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +u=$(xprop -name "Polybar tray window" _NET_WM_PID | awk '{print $3}') +if [ $u -Z ] +then polybar tray & +else kill $u +fi diff --git a/home/.config/rofi/config.rasi b/home/.config/rofi/config.rasi new file mode 100755 index 0000000..7bed4e5 --- /dev/null +++ b/home/.config/rofi/config.rasi @@ -0,0 +1,111 @@ +configuration{ + modi: "run,drun,window"; + lines: 5; + show-icons: true; + icon-theme: "Flat-Remix-Blue-Dark"; + terminal: "alacritty"; + drun-display-format: "{name}"; + location: 0; + disable-history: false; + hide-scrollbar: true; + display-drun: " 󰵆 Apps "; + display-run: " 󰆍 Run "; + display-window: " 󱂬 Window"; + sidebar-mode: true; +} +@theme "/dev/null" +* { + background-color: #000000; + text-color: #7AA2F7; + black: #000000; + blue: #7AA2F7; + deepblue: #03339c; + clear: #00000000; + width: 800; + font: "Overpass 16"; +} +window { + height: 500px; + border: 0px; + border-radius: 15; +} + +mainbox { + children: [ mode-switcher, inputbar, listview ]; +} + +inputbar { + children: [prompt,entry]; + background-color: @black; + border-radius: 5px; + padding: 2px; +} + +prompt { + background-color: @blue; + padding: 6px; + text-color: @black; + border-radius: 5px; + margin: 20px 0px 0px 20px; +} + +textbox-prompt-colon { + expand: false; + str: ":"; +} + +entry { + padding: 6px; + margin: 20px 0px 0px 10px; +} + +listview { + border: 0px 0px 0px; + padding: 10 10 0; + margin: 10 10 0 10; + columns: 4; + spacing: 15; +} + +element { + padding: 5px; + orientation: vertical; + spacing: 10; +} + +element-icon { + size: 56px; + horizontal-align: 0.5; + background-color: @clear; +} + +element selected { + background-color: @deepblue ; + text-color: @black ; + border-radius: 8px; +} + +element-text { + vertical-align: 0.5; + horizontal-align: 0.5; + expand: true; + background-color: @clear; +} + +mode-switcher { + spacing: 0; + margin: 5 10 5 10; + padding: 10 50 5 50; +} + +button { + padding: 10px; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +button selected { + background-color: @blue ; + text-color: @black; + border-radius: 10px; +} diff --git a/home/.config/rofi/powermenu/powermenu.rasi b/home/.config/rofi/powermenu/powermenu.rasi new file mode 100755 index 0000000..efda13c --- /dev/null +++ b/home/.config/rofi/powermenu/powermenu.rasi @@ -0,0 +1,42 @@ +* { + background: #00000000; + black: #000000; + blue: #7aa2f7; + deepblue: #03339c; +} +* { + background-color: #00000000; + text-color: @blue; + font: "Material Design Icons 60"; +} +prompt,inputbar,entry,textbox-prompt-colon { enabled: false; } +#window { + width: 100%; + height: 100%; + background-color: @background; + transparency: "real"; + children: [dummy, listview, dummy]; +} +#dummyofdummy { + children: [dummy, listview, dummy]; +} +#dummy { + expand: true; +} +listview { + lines: 4; + layout: horizontal; + children: [element]; + margin: 100px 0px 100px 585px; +} +#element { + padding: 30px 40px; + background-color: @black; + border-color: #00000000; + border-radius: 20px; + text-color: @black; +} +#element.selected { + text-color: @black; + background-color: @deepblue; +} diff --git a/home/.config/rofi/powermenu/powermenu.sh b/home/.config/rofi/powermenu/powermenu.sh new file mode 100755 index 0000000..ee16386 --- /dev/null +++ b/home/.config/rofi/powermenu/powermenu.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +rofi_command="rofi -theme $HOME/.config/rofi/powermenu/powermenu.rasi -p "power"" + +#### Options ### +power_off="襤 " +reboot="勒 " +lock=" " +suspend=" " +log_out="﫼 " +# Variable passed to rofi +options="$power_off\n$reboot\n$suspend\n$log_out" + +chosen="$(echo -e "$options" | $rofi_command -dmenu -selected-row 2)" +case $chosen in + $power_off) + systemctl poweroff + ;; + $reboot) + systemctl reboot + ;; + $suspend) + systemctl suspend + ;; + $log_out) + bspc quit + ;; +esac diff --git a/home/.config/rofi/window-switcher/box.rasi b/home/.config/rofi/window-switcher/box.rasi new file mode 100755 index 0000000..d122ff0 --- /dev/null +++ b/home/.config/rofi/window-switcher/box.rasi @@ -0,0 +1,109 @@ +configuration { + show-icons: true; + icon-theme: "Flat-Remix-Blue-Dark"; + disable-history: true; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; + display-window: ""; + window-format : "{t}"; + window-thumbnail: false; +} + +* { + background-color: #000000; + black: #000000; + text-color: #7AA2F7; + blue: #7AA2F7; + deepblue: #03339c; + clear: #00000000; + font: "Overpass 12"; +} + +window { + border: 0px; + border-color: @deepblue; + border-radius: 20px; + height: 150; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: false; + padding: 0.25% 0.75% 0% -0.25%; +} + +entry { + enabled: false; + placeholder-color: @blue; + expand: false; + horizontal-align: 0; + placeholder: "Switch to..."; + padding: 0% 0% 0% 0%; + blink: true; +} + +inputbar { + enabled: false; + children: [ prompt, entry]; + expand: false; + border: 0.3% 0% 0.3% 0%; + border-radius: 100%; + border-color: @deepblue; + margin: 0% 0% 0% 0%; +} + +listview { + margin: 0.3% 0% 0% 0%; + columns: 8; + row: 1; + spacing: 1%; + cycle: true; + dynamic: true; + layout: vertical; + fixed-height : true; +} + +mainbox { + border: 0% 0% 0% 0%; + border-radius: 0% 0% 0% 0%; + border-color: @accent; + children: [ inputbar, listview]; + spacing: -100%; + padding: 1.5% 1% 1% 1%; +} + +element { + orientation: vertical; + border-radius: 75px; + padding: 2% 0% 0% 0%; +} + +element-icon { + size: 50px; + border: 0px; +} + +element-text { + expand: false; + horizontal-align: 0.5; + vertical-align: 0.9; + margin: 1% 0.5% 0.7% 0.5%; +} + +element selected { + background-color: @deepblue; + border: 3px; + border-radius: 15px; + border-color: @deepblue; +} + +element-text, element-icon, element { + background-color: inherit; +} + +listview, element, element selected, element-icon, element-text { + cursor: pointer; +} diff --git a/home/.config/rofi/window-switcher/box.rasi.save b/home/.config/rofi/window-switcher/box.rasi.save new file mode 100755 index 0000000..c8eee43 --- /dev/null +++ b/home/.config/rofi/window-switcher/box.rasi.save @@ -0,0 +1,109 @@ +configuration { + show-icons: true; + icon-theme: "Flat-Remix-Blue-Dark"; + disable-history: true; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; + display-window: ""; + window-format : "{t}"; + window-thumbnail: false; +} + +* { + background-color: #000000; + black: #000000; + text-color: #7AA2F7; + blue: #7AA2F7; + deepblue: #03339c; + clear: #00000000; + font: "Overpass 16"; +} + +window { + border: 0px; + border-color: @deepblue; + border-radius: 20px; + height: 18.8%; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: false; + padding: 0.25% 0.75% 0% -0.25%; +} + +entry { + enabled: false; + placeholder-color: @blue; + expand: false; + horizontal-align: 0; + placeholder: "Switch to..."; + padding: 0% 0% 0% 0%; + blink: true; +} + +inputbar { + enabled: false; + children: [ prompt, entry]; + expand: false; + border: 0.3% 0% 0.3% 0%; + border-radius: 100%; + border-color: @deepblue; + margin: 0% 0% 0% 0%; +} + +listview { + margin: 0.3% 0% 0% 0%; + columns: 6; + row: 1; + spacing: 1%; + cycle: true; + dynamic: true; + layout: vertical; + fixed-height : true; +} + +mainbox { + border: 0% 0% 0% 0%; + border-radius: 0% 0% 0% 0%; + border-color: @accent; + children: [ inputbar, listview]; + spacing: -100%; + padding: 1.5% 1% 1% 1%; +} + +element { + orientation: vertical; + border-radius: 100px; + padding: 2% 0% 0% 0%; +} + +element-icon { + size: 100px; + border: 0px; +} + +element-text { + expand: false; + horizontal-align: 0.5; + vertical-align: 0.9; + margin: 1% 0.5% 0.7% 0.5%; +} + +element selected { + background-color: @deepblue; + border: 3px; + border-radius: 15px; + border-color: @deepblue; +} + +element-text, element-icon, element { + background-color: inherit; +} + +listview, element, element selected, element-icon, element-text { + cursor: pointer; +} diff --git a/home/.config/rofi/window-switcher/window-switcher.sh b/home/.config/rofi/window-switcher/window-switcher.sh new file mode 100755 index 0000000..5c1e2ca --- /dev/null +++ b/home/.config/rofi/window-switcher/window-switcher.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +path=$HOME/.config/rofi/window-switcher/box.rasi +windows="$(xprop -root _NET_CLIENT_LIST | grep -o '0x' | wc -l )" +if (($windows<8)); then + width=$(($windows*150)) +else + width=1200 +fi +rofi \ + -no-lazy-grab \ + -show window \ + -theme $path \ + -theme-str 'window {width: '$width';}' diff --git a/images/nixos.png b/images/nixos.png new file mode 100644 index 0000000..d958f82 Binary files /dev/null and b/images/nixos.png differ diff --git a/images/stars-1080.jpg b/images/stars-1080.jpg new file mode 100755 index 0000000..e520cc1 Binary files /dev/null and b/images/stars-1080.jpg differ diff --git a/images/stars.jpg b/images/stars.jpg new file mode 100755 index 0000000..28b0e71 Binary files /dev/null and b/images/stars.jpg differ diff --git a/lightdm-mini.conf b/lightdm-mini.conf new file mode 100755 index 0000000..0a12870 --- /dev/null +++ b/lightdm-mini.conf @@ -0,0 +1,38 @@ +[greeter] +user = gerg +show-password-label = false +password-label-text = +invalid-password-text = +show-input-cursor = false +password-alignment = center +password-input-width = 19 +show-image-on-all-monitors = true + + +[greeter-hotkeys] +mod-key = meta +shutdown-key = s +restart-key = r +hibernate-key = h +suspend-key = u + + +[greeter-theme] +font = "OverpassMono Nerd Font" +font-size = 1.1em +font-weight = bold +font-style = normal +text-color = "#7AA2F7" +error-color = "#DB4B4B" +background-image = "/etc/nixos/images/stars-1080.jpg" +background-color = "#000000" +window-color = "#000000" +border-color = "#000000" +border-width = 2px +layout-space = 15 +password-character = -1 +password-color = "#7AA2F7" +password-background-color = "#24283B" +password-border-color = "#000000" +password-border-width = 2px +password-border-radius = 0.341125em diff --git a/networking.nix b/networking.nix new file mode 100755 index 0000000..1b9dcc3 --- /dev/null +++ b/networking.nix @@ -0,0 +1,10 @@ +{ lib, ...}: + +{ + networking = { + firewall.enable = true; + hostName = "gerg-laptop"; + useDHCP = lib.mkDefault true; + networkmanager. enable = true; + }; +} diff --git a/packages.nix b/packages.nix new file mode 100755 index 0000000..50ed247 --- /dev/null +++ b/packages.nix @@ -0,0 +1,49 @@ +{ config, pkgs, callPackage, ... }: +{ +environment.systemPackages = with pkgs; [ + #single commands + nano + wget + neofetch + htop + efibootmgr + maim + #lightdm + lightdm + lightdm-mini-greeter + #needed utils + pipewire + xorg.xf86videoamdgpu + mesa + mesa-demos + pciutils + git + dash + #user/gui + discord + spotify-tray + vlc + bitwarden + protonvpn-gui + gimp + qbittorrent + feh + #explicit xfce4 for bspwm + xarchive + xfce.catfish + xfce.mousepad + xfce.xfce4-power-manager + #shiny + brightnessctl + playerctl + networkmanager_dmenu + networkmanagerapplet + dmenu + qsudo + flashfocus + pavucontrol + gpick + xclip + alsa-utils + ]; +} diff --git a/prime.nix b/prime.nix new file mode 100755 index 0000000..9cba6ad --- /dev/null +++ b/prime.nix @@ -0,0 +1,23 @@ + +{ config, ... }: + +{ + hardware = { + nvidia = { + nvidiaPersistenced = true; + prime = { + sync.enable = true; + amdgpuBusId = "PCI:5:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + package = config.boot.kernelPackages.nvidiaPackages.stable; + modesetting.enable = true; + }; + opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + }; +} + diff --git a/thunar.nix b/thunar.nix new file mode 100644 index 0000000..7a28403 --- /dev/null +++ b/thunar.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: +{ + programs.thunar = { + enable = true; + plugins = with pkgs.xfce; [ thunar-volman thunar-archive-plugin thunar-media-tags-plugin]; + }; +} diff --git a/xserver.nix b/xserver.nix new file mode 100755 index 0000000..d7ac852 --- /dev/null +++ b/xserver.nix @@ -0,0 +1,23 @@ +{ + enable = true; + videoDrivers = ["nvidia" "modesetting"]; + layout = "us"; + libinput.enable = true; + desktopManager = { + xterm.enable = false; + }; + windowManager.bspwm = { + enable = true; + }; + displayManager = { + defaultSession = "none+bspwm"; + lightdm = { + enable = true; + greeters.mini = { + enable = true; + extraConfig = (builtins.readFile ./lightdm-mini.conf); + }; + }; + }; +} +