This commit is contained in:
Greg Leyda 2022-07-09 11:27:58 -04:00
commit beaf5202ca
37 changed files with 1802 additions and 0 deletions

31
boot.nix Executable file
View file

@ -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;
};
};
}

76
configuration.nix Executable file
View file

@ -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;
}

11
fileSystems.nix Executable file
View file

@ -0,0 +1,11 @@
{
"/" =
{ device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
"/boot" =
{ device = "/dev/disk/by-label/BOOT";
fsType = "vfat";
};
}

46
flake.nix Normal file
View file

@ -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
];
};
};
};
}

14
fonts.nix Executable file
View file

@ -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" ];
};
};
};
}

26
home-manager.nix Executable file
View file

@ -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;
};
};
};
}

View file

@ -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";
};
};
};
};
}

29
home-manager/bspwm.nix Executable file
View file

@ -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" ];
};
};
}

82
home-manager/dunst.nix Executable file
View file

@ -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 = ''<b>%s</b>\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;
};
};
};
}

19
home-manager/firefox.nix Executable file
View file

@ -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") );
};
};
};
};
}

61
home-manager/picom.nix Normal file
View file

@ -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; }
};
'';
};
}

314
home-manager/polybar.nix Executable file
View file

@ -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:}<ramp-signal>%{A}\"";
disconnected = "\"%{A1:networkmanager_dmenu:}<label-disconnected>%{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:}<animation-charging>%{A}\"";
discharging = "\"%{A1:xfce4-power-menu -c:}<ramp-capacity>%{A}\"";
low = "\"%{A1:xfce4-power-menu -c:}<animation-low>%{A}\"";
full = "\"%{A1:xfce4-power-menu -c:}<ramp-capacity>%{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:}<ramp-volume>%{A}\"";
muted = "\"%{A1:pavucontrol:}<label-muted>%{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";
};
};
};
};
}

6
home-manager/rofi.nix Executable file
View file

@ -0,0 +1,6 @@
{
programs.rofi = {
enable = true;
configPath = "./.rofi";
};
}

45
home-manager/sxhkd.nix Executable file
View file

@ -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";
};
};
}

18
home-manager/theme.nix Normal file
View file

@ -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;
};
};
}

32
home-manager/zsh.nix Executable file
View file

@ -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;
};
};
};
};
}

31
home/.config/Thunar/uca.xml Executable file
View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<icon>utilities-terminal</icon>
<name>Open Terminal Here</name>
<unique-id>1651604010244754-1</unique-id>
<command>alacritty --working-directory %f </command>
<description>Example for a custom action</description>
<patterns>*</patterns>
<startup-notify/>
<directories/>
</action>
<action>
<icon>folder</icon>
<name>Root</name>
<unique-id>1651640324751320-1</unique-id>
<command>qsudo thunar %f</command>
<description></description>
<patterns>*</patterns>
<directories/>
</action>
<action>
<icon>org.xfce.catfish</icon>
<name>Search</name>
<unique-id>1651908115751880-1</unique-id>
<command>catfish --path=%f</command>
<description></description>
<patterns>*</patterns>
<directories/>
</action>
</actions>

View file

@ -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

View file

@ -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"

View file

@ -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 = <True or False> # (Default: False). Remove extra spacing from display
compact = True
# pinentry = <Pinentry command> # (Default: None) e.g. `pinentry-gtk`
# wifi_chars = <string of 4 unicode characters representing 1-4 bars strength>
# wifi_chars = 󰤯󰤟󰤢󰤨
# list_saved = <True or False> # (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

View file

@ -0,0 +1,154 @@
/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
/* 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;
}

View file

@ -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

111
home/.config/rofi/config.rasi Executable file
View file

@ -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;
}

View file

@ -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;
}

View file

@ -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

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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';}'

BIN
images/nixos.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
images/stars-1080.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

BIN
images/stars.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

38
lightdm-mini.conf Executable file
View file

@ -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

10
networking.nix Executable file
View file

@ -0,0 +1,10 @@
{ lib, ...}:
{
networking = {
firewall.enable = true;
hostName = "gerg-laptop";
useDHCP = lib.mkDefault true;
networkmanager. enable = true;
};
}

49
packages.nix Executable file
View file

@ -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
];
}

23
prime.nix Executable file
View file

@ -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;
};
};
}

7
thunar.nix Normal file
View file

@ -0,0 +1,7 @@
{pkgs, ...}:
{
programs.thunar = {
enable = true;
plugins = with pkgs.xfce; [ thunar-volman thunar-archive-plugin thunar-media-tags-plugin];
};
}

23
xserver.nix Executable file
View file

@ -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);
};
};
};
}