Compare commits
	
		
			4 Commits
		
	
	
		
			2bb838aef4
			...
			e9663453f8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e9663453f8 | |||
| 1ae71eba14 | |||
| c4f0a374b2 | |||
| 3652381567 | 
@ -1,15 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
LOC="$1"
 | 
			
		||||
# HTML encode string as %20
 | 
			
		||||
LOCATION=$(sed -e "s/ /%20/g" <<<"$LOC")
 | 
			
		||||
content=$(curl -sS "https://thisdavej.azurewebsites.net/api/weather/current?loc=NewYork°=C")
 | 
			
		||||
ICON=$(curl -s 'https://wttr.in/?format=1' | sed 's/[+0-9a-cA-Z°-]//g' )
 | 
			
		||||
# echo $ICON
 | 
			
		||||
TEMP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)"' | sed 's/"//g')
 | 
			
		||||
TOOLTIP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)\n\(.skytext)"' | sed 's/"//g')
 | 
			
		||||
CLASS=$(echo $content | jq .skytext)
 | 
			
		||||
echo '{"text": "'$TEMP'", "tooltip": "'$ICON $TOOLTIP $LOC'", "class": '$CLASS' }'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,21 +0,0 @@
 | 
			
		||||
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#simple Shellscript for waybar/i3blocks/polybar on Pinebook pro
 | 
			
		||||
#05012020 geri123@gmx.net Gerhard S.
 | 
			
		||||
 | 
			
		||||
PERCENT=$(cat /sys/class/power_supply/cw2015-battery/capacity)
 | 
			
		||||
STATUS=$(cat /sys/class/power_supply/cw2015-battery/status)
 | 
			
		||||
case $((
 | 
			
		||||
 $PERCENT >= 0 && $PERCENT <= 20 ? 1 :
 | 
			
		||||
 $PERCENT > 20 && $PERCENT <= 40 ? 2 :
 | 
			
		||||
 $PERCENT > 40 && $PERCENT <= 60 ? 3 :
 | 
			
		||||
 $PERCENT > 60 && $PERCENT <= 80 ? 4 : 5)) in
 | 
			
		||||
#
 | 
			
		||||
       (1) echo $STATUS:"":$PERCENT%;;
 | 
			
		||||
       (2) echo $STATUS:"":$PERCENT%;;
 | 
			
		||||
       (3) echo $STATUS:"":$PERCENT%;;
 | 
			
		||||
       (4) echo $STATUS:"":$PERCENT%;;
 | 
			
		||||
       (5) echo $STATUS:"":$PERCENT%;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,2 +0,0 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
yad --title="EndeavourOS Sway-WM keybindings:" --no-buttons --geometry=400x345-15-400 --list --column=key: --column=description: --column=command: "ESC" "close this app" "" "=" "modkey" "(set mod Mod4)" "+enter" "Terminal" "(xfce4-terminal)" "+d" "Application Menu" "(wofi)" "+p" "Activities" "(wofi)" "+o" "" "Open Broswer" "+n" "" "Open Files" "+q" "close focused app" "(kill)" "[Shift]+Print-key" "screenshot" "(grim)" "+Shift+e" "power-menu" "(wofi)" "+t" "open keybinding helper" "full list"
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
LOC="$1"
 | 
			
		||||
# HTML encode string as %20
 | 
			
		||||
LOCATION=$(sed -e "s/ /%20/g" <<<"$LOC")
 | 
			
		||||
content=$(curl -sS "https://thisdavej.azurewebsites.net/api/weather/current?loc=$LOCATION°=C")
 | 
			
		||||
ICON=$(curl -s 'https://wttr.in/?format=1' | sed 's/[+0-9a-cA-Z°-]//g' )
 | 
			
		||||
# echo $ICON
 | 
			
		||||
TEMP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)"' | sed 's/"//g')
 | 
			
		||||
TOOLTIP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)\n\(.skytext)"' | sed 's/"//g')
 | 
			
		||||
CLASS=$(echo $content | jq .skytext)
 | 
			
		||||
echo '{"text": "'$TEMP'", "tooltip": "'$ICON $TOOLTIP $LOC'", "class": '$CLASS' }'
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										45
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						@ -7,11 +7,11 @@
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1702735279,
 | 
			
		||||
        "narHash": "sha256-SztEzDOE/6bDNnWWvnRbSHPVrgewLwdSei1sxoZFejM=",
 | 
			
		||||
        "lastModified": 1705269478,
 | 
			
		||||
        "narHash": "sha256-j7Rp8Y3ckBHOlIzqe0g2+/BVce9SU/dVtn4Eb0rMuY4=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "e9b9ecef4295a835ab073814f100498716b05a96",
 | 
			
		||||
        "rev": "846200eb574faa2af808ed02e653c2b8ed51fd71",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@ -20,33 +20,13 @@
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nix-ld": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1701153607,
 | 
			
		||||
        "narHash": "sha256-h+odOVyiGmEERMECoFOj5P7FPiMR8IPRzroFA4sKivg=",
 | 
			
		||||
        "owner": "Mic92",
 | 
			
		||||
        "repo": "nix-ld",
 | 
			
		||||
        "rev": "bf5aa84a713c31d95b4307e442e966d6c7fd7ae7",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "Mic92",
 | 
			
		||||
        "repo": "nix-ld",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1702312524,
 | 
			
		||||
        "narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
 | 
			
		||||
        "lastModified": 1705133751,
 | 
			
		||||
        "narHash": "sha256-rCIsyE80jgiOU78gCWN3A0wE0tR2GI5nH6MlS+HaaSQ=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "a9bf124c46ef298113270b1f84a164865987a91c",
 | 
			
		||||
        "rev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@ -58,11 +38,11 @@
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-stable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1702346276,
 | 
			
		||||
        "narHash": "sha256-eAQgwIWApFQ40ipeOjVSoK4TEHVd6nbSd9fApiHIw5A=",
 | 
			
		||||
        "lastModified": 1705183652,
 | 
			
		||||
        "narHash": "sha256-rnfkyUH0x72oHfiSDhuCHDHg3gFgF+lF8zkkg5Zihsw=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "cf28ee258fd5f9a52de6b9865cdb93a1f96d09b7",
 | 
			
		||||
        "rev": "428544ae95eec077c7f823b422afae5f174dee4b",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@ -74,11 +54,11 @@
 | 
			
		||||
    },
 | 
			
		||||
    "nur": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1702770334,
 | 
			
		||||
        "narHash": "sha256-MVILxIF9ZVIk0f9w3yYZpy8auwxgey0MFzdoIFFvQNU=",
 | 
			
		||||
        "lastModified": 1705283909,
 | 
			
		||||
        "narHash": "sha256-7F2KyTB4cApsHg7oltJ1r0QFWMjWTOaS9m2IbKFhj6Y=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "NUR",
 | 
			
		||||
        "rev": "1d37444620523278aa163bb9e30104f5d1152061",
 | 
			
		||||
        "rev": "375b9a949232cd1e31bd89d197a5605a17d2aeb3",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@ -90,7 +70,6 @@
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "nix-ld": "nix-ld",
 | 
			
		||||
        "nixpkgs": "nixpkgs",
 | 
			
		||||
        "nixpkgs-stable": "nixpkgs-stable",
 | 
			
		||||
        "nur": "nur"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										54
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						@ -3,43 +3,23 @@
 | 
			
		||||
 | 
			
		||||
  inputs = {
 | 
			
		||||
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
 | 
			
		||||
 | 
			
		||||
    nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
 | 
			
		||||
 | 
			
		||||
    nix-ld = {
 | 
			
		||||
        url = "github:Mic92/nix-ld";
 | 
			
		||||
        inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    nur.url = "github:nix-community/NUR";
 | 
			
		||||
 | 
			
		||||
    home-manager = {
 | 
			
		||||
        url = "github:nix-community/home-manager";
 | 
			
		||||
        inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # firefox-addons = {
 | 
			
		||||
    #     url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
 | 
			
		||||
    #     inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    # };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { self, nixpkgs, nixpkgs-stable, nix-ld, nur, home-manager, ... } @ inputs:
 | 
			
		||||
  outputs = { self, nixpkgs, nixpkgs-stable, nur, home-manager, ... } @ inputs:
 | 
			
		||||
  let
 | 
			
		||||
    inherit (self) outputs;
 | 
			
		||||
    system = "x86_64-linux";
 | 
			
		||||
    userName = "nate";
 | 
			
		||||
    fullName = "Nate Anderson";
 | 
			
		||||
    email = "n8r@tuta.io";
 | 
			
		||||
    hostName = "winmax";
 | 
			
		||||
    desktop = "sway";
 | 
			
		||||
    gaming = true;
 | 
			
		||||
    timeZone = "America/Denver";
 | 
			
		||||
    pkgs = nixpkgs.legacyPackages.${system};
 | 
			
		||||
    stablePkgs = nixpkgs-stable.legacyPackages.${system};
 | 
			
		||||
  in
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
    nixosConfigurations = {
 | 
			
		||||
      nixServer = nixpkgs.lib.nixosSystem {
 | 
			
		||||
        specialArgs = { inherit inputs; };
 | 
			
		||||
@ -49,24 +29,40 @@
 | 
			
		||||
          inputs.home-manager.nixosModules.default
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      nixDesktop = nixpkgs.lib.nixosSystem {
 | 
			
		||||
      nate = nixpkgs.lib.nixosSystem {
 | 
			
		||||
        # Pass args to desktop configuration
 | 
			
		||||
        specialArgs = {
 | 
			
		||||
            inherit inputs outputs userName hostName desktop timeZone gaming system;
 | 
			
		||||
            inherit inputs outputs timeZone system;
 | 
			
		||||
        };
 | 
			
		||||
        modules = [
 | 
			
		||||
          ./nixos/desktop_configuration.nix
 | 
			
		||||
          # Setup nix-ld
 | 
			
		||||
          nix-ld.nixosModules.nix-ld
 | 
			
		||||
            # Setup home manager
 | 
			
		||||
          home-manager.nixosModules.home-manager {
 | 
			
		||||
            inputs.home-manager.nixosModules.home-manager {
 | 
			
		||||
                home-manager.useGlobalPkgs = true;
 | 
			
		||||
                home-manager.useUserPackages = true;
 | 
			
		||||
              home-manager.users.${userName} = import ./modules/home-manager/home.nix;
 | 
			
		||||
                home-manager.users.nate = import ./nate/modules/home-manager/home.nix;
 | 
			
		||||
                home-manager.extraSpecialArgs = {
 | 
			
		||||
                  inherit inputs outputs userName fullName email hostName desktop gaming;
 | 
			
		||||
                    inherit inputs outputs;
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
            ./nate/default.nix
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      jaci = nixpkgs.lib.nixosSystem {
 | 
			
		||||
        # Pass args to desktop configuration
 | 
			
		||||
        specialArgs = {
 | 
			
		||||
            inherit inputs outputs timeZone system;
 | 
			
		||||
        };
 | 
			
		||||
        modules = [
 | 
			
		||||
            # Setup home manager
 | 
			
		||||
            inputs.home-manager.nixosModules.home-manager {
 | 
			
		||||
                home-manager.useGlobalPkgs = true;
 | 
			
		||||
                home-manager.useUserPackages = true;
 | 
			
		||||
                home-manager.users.jaci = import ./jaci/modules/home-manager/home.nix;
 | 
			
		||||
                home-manager.extraSpecialArgs = {
 | 
			
		||||
                    inherit inputs outputs;
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
            ./jaci/default.nix
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										39
									
								
								jaci/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,39 @@
 | 
			
		||||
{ config, lib, inputs, outputs, pkgs, system, timeZone, ... }:
 | 
			
		||||
  let
 | 
			
		||||
    userName = "jaci";
 | 
			
		||||
    fullName = "Jaci Anderson";
 | 
			
		||||
    email = "jaci.s.anderson@gmail.com";
 | 
			
		||||
    hostName = "meowyxlife";
 | 
			
		||||
    desktop = "kde";
 | 
			
		||||
    gaming = true;
 | 
			
		||||
  in
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
      ./desktop-configuration.nix
 | 
			
		||||
      ./nixos/hardware-configuration.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  deskCfg = {
 | 
			
		||||
      userName = userName;
 | 
			
		||||
      hostName = hostName;
 | 
			
		||||
      de = desktop;
 | 
			
		||||
      installGaming = gaming;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Limit the number of generations to keep
 | 
			
		||||
  boot.loader.systemd-boot.configurationLimit = 5;
 | 
			
		||||
 | 
			
		||||
  # Perform garbage collection weekly to maintain low disk usage
 | 
			
		||||
  nix.gc = {
 | 
			
		||||
    automatic = true;
 | 
			
		||||
    dates = "weekly";
 | 
			
		||||
    options = "--delete-older-than 1w";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Optimize storage
 | 
			
		||||
  # You can also manually optimize the store via:
 | 
			
		||||
  #    nix-store --optimise
 | 
			
		||||
  # Refer to the following link for more details:
 | 
			
		||||
  # https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store
 | 
			
		||||
  nix.settings.auto-optimise-store = true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										94
									
								
								jaci/desktop-configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,94 @@
 | 
			
		||||
{ config, lib, inputs, outputs, pkgs, timeZone, system, ... }:
 | 
			
		||||
let
 | 
			
		||||
  supportedDesktops = [ "kde" ];
 | 
			
		||||
  supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
 | 
			
		||||
  deskCfg = config.deskCfg;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.deskCfg = {
 | 
			
		||||
      de = lib.mkOption {
 | 
			
		||||
          default = "kde";
 | 
			
		||||
          type = lib.types.str;
 | 
			
		||||
          description = "Desktop Environment";
 | 
			
		||||
      };
 | 
			
		||||
      userName = lib.mkOption {
 | 
			
		||||
          type = lib.types.str;
 | 
			
		||||
          description = "Main username for system";
 | 
			
		||||
      };
 | 
			
		||||
      hostName = lib.mkOption {
 | 
			
		||||
          type = lib.types.str;
 | 
			
		||||
          description = "Hostname for system";
 | 
			
		||||
      };
 | 
			
		||||
      installGaming = lib.mkOption {
 | 
			
		||||
          type = lib.types.bool;
 | 
			
		||||
          default = true;
 | 
			
		||||
          description = "Whether to install gaming software or not";
 | 
			
		||||
      };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
   imports = [
 | 
			
		||||
     modules/user/main_user.nix
 | 
			
		||||
     modules/labwc/labwc_conf.nix
 | 
			
		||||
   ];
 | 
			
		||||
 | 
			
		||||
   config = {
 | 
			
		||||
    assertions = [
 | 
			
		||||
      {
 | 
			
		||||
        assertion = builtins.elem deskCfg.de supportedDesktops;
 | 
			
		||||
        message = "Unsupported desktop environment: ${deskCfg.de}\nSupported DE's: ${supportedDesktopsStr}";
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    nixpkgs.overlays = [
 | 
			
		||||
      inputs.nur.overlay
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    # Enable flakes feature
 | 
			
		||||
    nix.settings.experimental-features = [
 | 
			
		||||
      "nix-command" "flakes"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    # Use the systemd-boot EFI boot loader.
 | 
			
		||||
    boot.loader.systemd-boot.enable = true;
 | 
			
		||||
    boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
    # boot.plymouth.enable = true;
 | 
			
		||||
 | 
			
		||||
    networking.hostName = deskCfg.hostName; # Define your hostname.
 | 
			
		||||
    networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
 | 
			
		||||
 | 
			
		||||
    time.timeZone = timeZone;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    users.users.${deskCfg.userName} = {
 | 
			
		||||
        isNormalUser = true;
 | 
			
		||||
        initialPassword = "password";
 | 
			
		||||
        description = "main user";
 | 
			
		||||
        shell = pkgs.zsh;
 | 
			
		||||
        extraGroups = [
 | 
			
		||||
            "wheel"
 | 
			
		||||
            "networkmanager"
 | 
			
		||||
            "corectrl"
 | 
			
		||||
            deskCfg.userName
 | 
			
		||||
            "video"
 | 
			
		||||
            "audio"
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
       # main_user = {
 | 
			
		||||
    #   enable = true;
 | 
			
		||||
    #   userName = deskCfg.userName;
 | 
			
		||||
    #   isDesktopUser = true;
 | 
			
		||||
    # };
 | 
			
		||||
    
 | 
			
		||||
    labwc = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        useNonFree = true;
 | 
			
		||||
        installGaming = deskCfg.installGaming;
 | 
			
		||||
        systemPackages = with pkgs; [
 | 
			
		||||
          libreoffice
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
   
 | 
			
		||||
    system.stateVersion = "23.11"; # Did you read the comment?
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								jaci/dotfiles/labwc/autostart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,29 @@
 | 
			
		||||
#!/bin/dash
 | 
			
		||||
 | 
			
		||||
# Autostart Apps
 | 
			
		||||
xset +fp ~/.fonts/misc/
 | 
			
		||||
xset b off
 | 
			
		||||
xset r rate 250 25
 | 
			
		||||
xbacklight -set 5
 | 
			
		||||
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &
 | 
			
		||||
pcmanfm -d &
 | 
			
		||||
compton -b
 | 
			
		||||
hsetroot -tile ~/.wallpaper.png
 | 
			
		||||
xsettingsd &
 | 
			
		||||
dunst -geometry "300x60-28+56" &
 | 
			
		||||
 | 
			
		||||
# Touchpad settings
 | 
			
		||||
synclient \
 | 
			
		||||
VertEdgeScroll=0 HorizEdgeScroll=0 \
 | 
			
		||||
VertTwoFingerScroll=1 HorizTwoFingerScroll=1 \
 | 
			
		||||
VertScrollDelta=320 HorizScrollDelta=320 \
 | 
			
		||||
MinSpeed=0.05 MaxSpeed=1.2 \
 | 
			
		||||
AccelFactor=0.04 CoastingSpeed=10 \
 | 
			
		||||
TapButton1=0 TapButton2=0 TapButton3=0
 | 
			
		||||
 | 
			
		||||
# Panel
 | 
			
		||||
panel &
 | 
			
		||||
trayer \
 | 
			
		||||
--align right --widthtype request --heighttype pixel --height 28 \
 | 
			
		||||
--transparent true --alpha 255 &
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/bullet.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define bullet_width 9
 | 
			
		||||
#define bullet_height 9
 | 
			
		||||
static unsigned char bullet_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x20, 0x00,
 | 
			
		||||
   0x10, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/close.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define close_width 12
 | 
			
		||||
#define close_height 12
 | 
			
		||||
static unsigned char close_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x90, 0x00, 0x60, 0x00,
 | 
			
		||||
   0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/desk.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define desk_width 12
 | 
			
		||||
#define desk_height 12
 | 
			
		||||
static unsigned char desk_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/desk_toggled.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define desk_toggled_width 12
 | 
			
		||||
#define desk_toggled_height 12
 | 
			
		||||
static unsigned char desk_toggled_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0x60, 0x00,
 | 
			
		||||
   0x60, 0x00, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/iconify.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define iconify_width 12
 | 
			
		||||
#define iconify_height 12
 | 
			
		||||
static unsigned char iconify_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/max.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define max_width 12
 | 
			
		||||
#define max_height 12
 | 
			
		||||
static unsigned char max_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x40, 0x01,
 | 
			
		||||
   0x28, 0x00, 0x18, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/max_disabled.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define max_disabled_width 12
 | 
			
		||||
#define max_disabled_height 12
 | 
			
		||||
static unsigned char max_disabled_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x40, 0x01,
 | 
			
		||||
   0x28, 0x00, 0x18, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/max_toggled.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define max_toggled_width 12
 | 
			
		||||
#define max_toggled_height 12
 | 
			
		||||
static unsigned char max_toggled_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x40, 0x01,
 | 
			
		||||
   0x28, 0x00, 0x18, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										52
									
								
								jaci/dotfiles/labwc/menu.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,52 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<openbox_menu
 | 
			
		||||
	xmlns="http://openbox.org/"
 | 
			
		||||
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
	xsi:schemaLocation="http://openbox.org/
 | 
			
		||||
	file:///usr/share/openbox/menu.xsd">
 | 
			
		||||
	<menu id="root-menu" label="Openbox 3">
 | 
			
		||||
		<item label="Terminal emulator">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<execute>x-terminal-emulator</execute>
 | 
			
		||||
			</action>
 | 
			
		||||
		</item>
 | 
			
		||||
		<item label="Web browser">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<execute>x-www-browser</execute>
 | 
			
		||||
			</action>
 | 
			
		||||
		</item>
 | 
			
		||||
		<separator />
 | 
			
		||||
		<menu execute="openbox-menu lxde-applications.menu" id="apps" label="Applications"/>
 | 
			
		||||
		<menu id="client-list-menu" />
 | 
			
		||||
		<separator />
 | 
			
		||||
		<item label="Configurations">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<execute>obconf</execute>
 | 
			
		||||
			</action>
 | 
			
		||||
		</item>
 | 
			
		||||
		<item label="Reconfigure">
 | 
			
		||||
			<action name="Reconfigure" />
 | 
			
		||||
		</item>
 | 
			
		||||
		<separator />
 | 
			
		||||
		<menu id="exit" label="Exit" >
 | 
			
		||||
			<item label="Logout">
 | 
			
		||||
				<action name="Exit" />
 | 
			
		||||
			</item>
 | 
			
		||||
			<item label="Suspend">
 | 
			
		||||
				<action name="Execute">
 | 
			
		||||
					<execute>systemctl suspend</execute>
 | 
			
		||||
				</action>
 | 
			
		||||
			</item>
 | 
			
		||||
			<item label="Reboot">
 | 
			
		||||
				<action name="Execute">
 | 
			
		||||
					<execute>systemctl reboot</execute>
 | 
			
		||||
				</action>
 | 
			
		||||
			</item>
 | 
			
		||||
			<item label="Shutdown">
 | 
			
		||||
				<action name="Execute">
 | 
			
		||||
					<execute>systemctl poweroff</execute>
 | 
			
		||||
				</action>
 | 
			
		||||
			</item>
 | 
			
		||||
		</menu>
 | 
			
		||||
	</menu>
 | 
			
		||||
</openbox_menu>
 | 
			
		||||
							
								
								
									
										774
									
								
								jaci/dotfiles/labwc/rc.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,774 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
 | 
			
		||||
	<resistance>
 | 
			
		||||
		<strength>10</strength>
 | 
			
		||||
		<screen_edge_strength>20</screen_edge_strength>
 | 
			
		||||
	</resistance>
 | 
			
		||||
	<focus>
 | 
			
		||||
		<focusNew>yes</focusNew>
 | 
			
		||||
		<!-- Always try to focus new windows when they appear. other rules do apply -->
 | 
			
		||||
		<followMouse>no</followMouse>
 | 
			
		||||
		<!-- Move focus to a window when you move the mouse into it -->
 | 
			
		||||
		<focusLast>yes</focusLast>
 | 
			
		||||
		<!-- Focus the last used window when changing desktops, instead of the one 
 | 
			
		||||
		under the mouse pointer. when followMouse is enabled -->
 | 
			
		||||
		<underMouse>no</underMouse>
 | 
			
		||||
		<!-- Move focus under the mouse, even when the mouse is not moving -->
 | 
			
		||||
		<focusDelay>200</focusDelay>
 | 
			
		||||
		<!-- When followMouse is enabled, the mouse must be inside the window for
 | 
			
		||||
		this many milliseconds (1000 = 1 sec) before moving focus to it -->
 | 
			
		||||
		<raiseOnFocus>no</raiseOnFocus>
 | 
			
		||||
		<!-- When followMouse is enabled, and a window is given focus by moving the 
 | 
			
		||||
		mouse into it, also raise the window -->
 | 
			
		||||
	</focus>
 | 
			
		||||
	<placement>
 | 
			
		||||
		<policy>Smart</policy>
 | 
			
		||||
		<!-- 'Smart' or 'UnderMouse' -->
 | 
			
		||||
		<center>yes</center>
 | 
			
		||||
		<!-- Whether to place windows in the center of the free area found or 
 | 
			
		||||
		the top left corner -->
 | 
			
		||||
		<monitor>Primary</monitor>
 | 
			
		||||
		<!-- With Smart placement on a multi-monitor system, try to place new windows 
 | 
			
		||||
		on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where 
 | 
			
		||||
		the active window is, 'Primary' - only on the primary monitor -->
 | 
			
		||||
		<primaryMonitor>1</primaryMonitor>
 | 
			
		||||
		<!-- The monitor where Openbox should place popup dialogs such as the 
 | 
			
		||||
		focus cycling popup, or the desktop switch popup.	It can be an index 
 | 
			
		||||
		from 1, specifying a particular monitor.	Or it can be one of the 
 | 
			
		||||
		following: 'Mouse' - where the mouse is, or 'Active' - where 
 | 
			
		||||
		the active window is -->
 | 
			
		||||
	</placement>
 | 
			
		||||
	<theme>
 | 
			
		||||
		<name>Adiantum</name>
 | 
			
		||||
		<titleLayout>CLM</titleLayout>
 | 
			
		||||
		<!--
 | 
			
		||||
		Available characters are NDSLIMC, each can occur at most once.
 | 
			
		||||
		N: window icon
 | 
			
		||||
		L: window label (AKA title).
 | 
			
		||||
		I: iconify
 | 
			
		||||
		M: maximize
 | 
			
		||||
		C: close
 | 
			
		||||
		S: shade (roll up/down)
 | 
			
		||||
		D: omnipresent (on all desktops).
 | 
			
		||||
		-->
 | 
			
		||||
		<keepBorder>yes</keepBorder>
 | 
			
		||||
		<animateIconify>yes</animateIconify>
 | 
			
		||||
		<font place="ActiveWindow">
 | 
			
		||||
			<name>cinnamonroll</name>
 | 
			
		||||
			<size>8</size>
 | 
			
		||||
			<!-- font size in points -->
 | 
			
		||||
			<weight>Normal</weight>
 | 
			
		||||
			<!-- 'bold' or 'normal' -->
 | 
			
		||||
			<slant>Normal</slant>
 | 
			
		||||
			<!-- 'italic' or 'normal' -->
 | 
			
		||||
		</font>
 | 
			
		||||
		<font place="InactiveWindow">
 | 
			
		||||
			<name>cinnamonroll</name>
 | 
			
		||||
			<size>8</size>
 | 
			
		||||
			<!-- font size in points -->
 | 
			
		||||
			<weight>Normal</weight>
 | 
			
		||||
			<!-- 'bold' or 'normal' -->
 | 
			
		||||
			<slant>Normal</slant>
 | 
			
		||||
			<!-- 'italic' or 'normal' -->
 | 
			
		||||
		</font>
 | 
			
		||||
		<font place="MenuHeader">
 | 
			
		||||
			<name>cinnamonroll</name>
 | 
			
		||||
			<size>8</size>
 | 
			
		||||
			<!-- font size in points -->
 | 
			
		||||
			<weight>Normal</weight>
 | 
			
		||||
			<!-- 'bold' or 'normal' -->
 | 
			
		||||
			<slant>Normal</slant>
 | 
			
		||||
			<!-- 'italic' or 'normal' -->
 | 
			
		||||
		</font>
 | 
			
		||||
		<font place="MenuItem">
 | 
			
		||||
			<name>cinnamonroll</name>
 | 
			
		||||
			<size>8</size>
 | 
			
		||||
			<!-- font size in points -->
 | 
			
		||||
			<weight>Normal</weight>
 | 
			
		||||
			<!-- 'bold' or 'normal' -->
 | 
			
		||||
			<slant>Normal</slant>
 | 
			
		||||
			<!-- 'italic' or 'normal' -->
 | 
			
		||||
		</font>
 | 
			
		||||
		<font place="ActiveOnScreenDisplay">
 | 
			
		||||
			<name>cinnamonroll</name>
 | 
			
		||||
			<size>8</size>
 | 
			
		||||
			<!-- font size in points -->
 | 
			
		||||
			<weight>Normal</weight>
 | 
			
		||||
			<!-- 'bold' or 'normal' -->
 | 
			
		||||
			<slant>Normal</slant>
 | 
			
		||||
			<!-- 'italic' or 'normal' -->
 | 
			
		||||
		</font>
 | 
			
		||||
		<font place="InactiveOnScreenDisplay">
 | 
			
		||||
			<name>cinnamonroll</name>
 | 
			
		||||
			<size>8</size>
 | 
			
		||||
			<!-- font size in points -->
 | 
			
		||||
			<weight>Normal</weight>
 | 
			
		||||
			<!-- 'bold' or 'normal' -->
 | 
			
		||||
			<slant>Normal</slant>
 | 
			
		||||
			<!-- 'italic' or 'normal' -->
 | 
			
		||||
		</font>
 | 
			
		||||
	</theme>
 | 
			
		||||
	<desktops>
 | 
			
		||||
		<!-- this stuff is only used at startup, pagers allow you to change them
 | 
			
		||||
		during a session. these are default values to use when other ones are not
 | 
			
		||||
		already set by other applications, or saved in your session.
 | 
			
		||||
		Use obconf if you want to change these without having to log out
 | 
			
		||||
		and back in -->
 | 
			
		||||
		<number>4</number>
 | 
			
		||||
		<firstdesk>1</firstdesk>
 | 
			
		||||
		<names>
 | 
			
		||||
			<name>1</name>
 | 
			
		||||
			<name>2</name>
 | 
			
		||||
			<name>3</name>
 | 
			
		||||
			<name>4</name>
 | 
			
		||||
		</names>
 | 
			
		||||
		<popupTime>1000</popupTime>
 | 
			
		||||
		<!-- The number of milliseconds to show the popup for when switching
 | 
			
		||||
		desktops. Set this to 0 to disable the popup. -->
 | 
			
		||||
	</desktops>
 | 
			
		||||
	<resize>
 | 
			
		||||
		<drawContents>yes</drawContents>
 | 
			
		||||
		<popupShow>Nonpixel</popupShow>
 | 
			
		||||
		<!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
 | 
			
		||||
		<popupPosition>Center</popupPosition>
 | 
			
		||||
		<!-- 'Center', 'Top', or 'Fixed' -->
 | 
			
		||||
		<popupFixedPosition>
 | 
			
		||||
			<!-- these are used if popupPosition is set to 'Fixed' -->
 | 
			
		||||
			<x>10</x>
 | 
			
		||||
			<!-- positive number for distance from left edge, negative number for
 | 
			
		||||
			distance from right edge, or 'Center' -->
 | 
			
		||||
			<y>10</y>
 | 
			
		||||
			<!-- positive number for distance from top edge, negative number for
 | 
			
		||||
			distance from bottom edge, or 'Center' -->
 | 
			
		||||
		</popupFixedPosition>
 | 
			
		||||
	</resize>
 | 
			
		||||
	<!-- You can reserve a portion of your screen where windows will not cover when
 | 
			
		||||
	they are maximized, or when they are initially placed.
 | 
			
		||||
	Many programs reserve space automatically, but you can use this in other
 | 
			
		||||
	cases. -->
 | 
			
		||||
	<margins>
 | 
			
		||||
		<top>48</top>
 | 
			
		||||
		<bottom>16</bottom>
 | 
			
		||||
		<left>16</left>
 | 
			
		||||
		<right>16</right>
 | 
			
		||||
	</margins>
 | 
			
		||||
	<dock>
 | 
			
		||||
		<position>TopLeft</position>
 | 
			
		||||
		<!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
 | 
			
		||||
		<floatingX>0</floatingX>
 | 
			
		||||
		<floatingY>0</floatingY>
 | 
			
		||||
		<noStrut>no</noStrut>
 | 
			
		||||
		<stacking>Above</stacking>
 | 
			
		||||
		<!-- 'Above', 'Normal', or 'Below' -->
 | 
			
		||||
		<direction>Vertical</direction>
 | 
			
		||||
		<!-- 'Vertical' or 'Horizontal' -->
 | 
			
		||||
		<autoHide>no</autoHide>
 | 
			
		||||
		<hideDelay>300</hideDelay>
 | 
			
		||||
		<!-- in milliseconds (1000 = 1 second) -->
 | 
			
		||||
		<showDelay>300</showDelay>
 | 
			
		||||
		<!-- in milliseconds (1000 = 1 second) -->
 | 
			
		||||
		<moveButton>Middle</moveButton>
 | 
			
		||||
		<!-- 'Left', 'Middle', 'Right' -->
 | 
			
		||||
	</dock>
 | 
			
		||||
	<keyboard>
 | 
			
		||||
		<chainQuitKey>C-g</chainQuitKey>
 | 
			
		||||
		<!-- Keybindings for desktop switching -->
 | 
			
		||||
		<keybind key="C-A-Left">
 | 
			
		||||
			<action name="GoToDesktop">
 | 
			
		||||
				<to>left</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="C-A-Right">
 | 
			
		||||
			<action name="GoToDesktop">
 | 
			
		||||
				<to>right</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Sent window to next or previous workspace -->
 | 
			
		||||
		<keybind key="W-S-Left">
 | 
			
		||||
			<action name="SendToDesktop">
 | 
			
		||||
				<to>left</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-S-Right">
 | 
			
		||||
			<action name="SendToDesktop">
 | 
			
		||||
				<to>right</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Switch to another workspace -->
 | 
			
		||||
		<keybind key="W-1">
 | 
			
		||||
			<action name="GoToDesktop">
 | 
			
		||||
				<to>1</to>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-2">
 | 
			
		||||
			<action name="GoToDesktop">
 | 
			
		||||
				<to>2</to>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-3">
 | 
			
		||||
			<action name="GoToDesktop">
 | 
			
		||||
				<to>3</to>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-4">
 | 
			
		||||
			<action name="GoToDesktop">
 | 
			
		||||
				<to>4</to>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Sent window to worspace number -->
 | 
			
		||||
		<keybind key="W-S-1">
 | 
			
		||||
			<action name="SendToDesktop">
 | 
			
		||||
				<to>1</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-S-2">
 | 
			
		||||
			<action name="SendToDesktop">
 | 
			
		||||
				<to>2</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-S-3">
 | 
			
		||||
			<action name="SendToDesktop">
 | 
			
		||||
				<to>3</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-S-4">
 | 
			
		||||
			<action name="SendToDesktop">
 | 
			
		||||
				<to>4</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Keybindings for Aero Snap -->
 | 
			
		||||
		<keybind key="W-Right">
 | 
			
		||||
			<action name="UnmaximizeFull"/>
 | 
			
		||||
			<action name="MoveResizeTo">
 | 
			
		||||
				<x>-0</x>
 | 
			
		||||
				<y>+0</y>
 | 
			
		||||
				<width>50/100</width>
 | 
			
		||||
				<height>100/100</height>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-Left">
 | 
			
		||||
			<action name="UnmaximizeFull"/>
 | 
			
		||||
			<action name="MoveResizeTo">
 | 
			
		||||
				<x>+0</x>
 | 
			
		||||
				<y>+0</y>
 | 
			
		||||
				<width>50/100</width>
 | 
			
		||||
				<height>100/100</height>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-Up">
 | 
			
		||||
			<action name="UnmaximizeFull"/>
 | 
			
		||||
			<action name="MoveResizeTo">
 | 
			
		||||
				<width>75/100</width>
 | 
			
		||||
				<height>75/100</height>
 | 
			
		||||
			</action>
 | 
			
		||||
			<action name="MoveToCenter"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-Down">
 | 
			
		||||
			<action name="UnmaximizeFull"/>
 | 
			
		||||
			<action name="MoveResizeTo">
 | 
			
		||||
				<width>50/100</width>
 | 
			
		||||
				<height>50/100</height>
 | 
			
		||||
			</action>
 | 
			
		||||
			<action name="MoveToCenter"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-S-Up">
 | 
			
		||||
			<action name="UnmaximizeFull"/>
 | 
			
		||||
			<action name="MoveResizeTo">
 | 
			
		||||
				<width>75/100</width>
 | 
			
		||||
				<height>75/100</height>
 | 
			
		||||
			</action>
 | 
			
		||||
			<action name="MoveToCenter"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Keybindings for moving window to edge -->
 | 
			
		||||
		<keybind key="W-C-Right">
 | 
			
		||||
			<action name="MoveToEdge">
 | 
			
		||||
				<direction>east</direction>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-C-Left">
 | 
			
		||||
			<action name="MoveToEdge">
 | 
			
		||||
				<direction>west</direction>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-C-Up">
 | 
			
		||||
			<action name="MoveToEdge">
 | 
			
		||||
				<direction>north</direction>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-C-Down">
 | 
			
		||||
			<action name="MoveToEdge">
 | 
			
		||||
				<direction>south</direction>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-a">
 | 
			
		||||
			<action name="MoveToCenter"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Keybindings for undecorate, fullscreen, minimize,
 | 
			
		||||
		roll-up, stick, resize, move, close, and window menu -->
 | 
			
		||||
		<keybind key="W-t">
 | 
			
		||||
			<action name="ToggleDecorations"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-f">
 | 
			
		||||
			<action name="ToggleMaximize"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-z">
 | 
			
		||||
			<action name="Iconify"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-u">
 | 
			
		||||
			<action name="ToggleShade"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-s">
 | 
			
		||||
			<action name="ToggleOmnipresent"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-r">
 | 
			
		||||
			<action name="Resize"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-m">
 | 
			
		||||
			<action name="Move"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="A-F4">
 | 
			
		||||
			<action name="Close"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-c">
 | 
			
		||||
			<action name="Close"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="A-space">
 | 
			
		||||
			<action name="ShowMenu">
 | 
			
		||||
				<menu>client-menu</menu>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Keybindings for window switching -->
 | 
			
		||||
		<keybind key="A-Tab">
 | 
			
		||||
			<action name="NextWindow">
 | 
			
		||||
				<dialog>list</dialog>
 | 
			
		||||
				<bar>no</bar>
 | 
			
		||||
				<finalactions>
 | 
			
		||||
					<action name="Focus"/>
 | 
			
		||||
					<action name="Raise"/>
 | 
			
		||||
					<action name="Unshade"/>
 | 
			
		||||
				</finalactions>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="A-S-Tab">
 | 
			
		||||
			<action name="PreviousWindow">
 | 
			
		||||
				<dialog>list</dialog>
 | 
			
		||||
				<bar>no</bar>
 | 
			
		||||
				<finalactions>
 | 
			
		||||
					<action name="Focus"/>
 | 
			
		||||
					<action name="Raise"/>
 | 
			
		||||
					<action name="Unshade"/>
 | 
			
		||||
				</finalactions>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="C-A-Down">
 | 
			
		||||
			<action name="NextWindow">
 | 
			
		||||
				<dialog>list</dialog>
 | 
			
		||||
				<bar>yes</bar>
 | 
			
		||||
				<raise>yes</raise>
 | 
			
		||||
				<finalactions>
 | 
			
		||||
					<action name="Focus"/>
 | 
			
		||||
					<action name="Raise"/>
 | 
			
		||||
					<action name="Unshade"/>
 | 
			
		||||
				</finalactions>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="C-A-Up">
 | 
			
		||||
			<action name="NextWindow">
 | 
			
		||||
				<dialog>list</dialog>
 | 
			
		||||
				<bar>yes</bar>
 | 
			
		||||
				<raise>yes</raise>
 | 
			
		||||
				<finalactions>
 | 
			
		||||
					<action name="Focus"/>
 | 
			
		||||
					<action name="Raise"/>
 | 
			
		||||
					<action name="Unshade"/>
 | 
			
		||||
				</finalactions>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Keybindings for window switching with the arrow keys -->
 | 
			
		||||
		<keybind key="W-A-Right">
 | 
			
		||||
			<action name="DirectionalCycleWindows">
 | 
			
		||||
				<direction>right</direction>
 | 
			
		||||
				<dialog>no</dialog>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-A-Left">
 | 
			
		||||
			<action name="DirectionalCycleWindows">
 | 
			
		||||
				<direction>left</direction>
 | 
			
		||||
				<dialog>no</dialog>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-A-Up">
 | 
			
		||||
			<action name="DirectionalCycleWindows">
 | 
			
		||||
				<direction>up</direction>
 | 
			
		||||
				<dialog>no</dialog>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-A-Down">
 | 
			
		||||
			<action name="DirectionalCycleWindows">
 | 
			
		||||
				<direction>down</direction>
 | 
			
		||||
				<dialog>no</dialog>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Keybindings for startmenu	-->
 | 
			
		||||
		<keybind key="W-d">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>launch</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-Tab">
 | 
			
		||||
			<action name="ShowMenu">
 | 
			
		||||
				<menu>client-list-combined-menu</menu>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-space">
 | 
			
		||||
			<action name="ShowMenu">
 | 
			
		||||
				<menu>root-menu</menu>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Keybindings for running applications -->
 | 
			
		||||
		<keybind key="W-Return">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>x-terminal-emulator</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-w">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>x-www-browser</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-e">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>pcmanfm</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-g">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>geany</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-v">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>pavucontrol</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Take a screenshot, say "Cheeeese!" -->
 | 
			
		||||
		<keybind key="Print">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>screeny</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="A-Print">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>screeny -f</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="C-Print">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>screeny -s</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Multimedia keys-->
 | 
			
		||||
		<keybind key="XF86AudioStop">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>mpc stop</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="XF86AudioPlay">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>mpc toggle</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="XF86AudioPrev">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>mpc prev</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="XF86AudioNext">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>mpc next</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="XF86MonBrightnessDown">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>xbacklight -dec 5</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="XF86MonBrightnessUp">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>xbacklight -inc 5</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- I'm not satisfied with PulseAudio default volume controller. 
 | 
			
		||||
		So, I use custom script instead -->
 | 
			
		||||
		<keybind key="XF86AudioRaiseVolume">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>pulsevol --up</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="XF86AudioLowerVolume">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>pulsevol --down</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="XF86AudioMute">
 | 
			
		||||
			<action name="Execute">
 | 
			
		||||
				<command>pulsevol --mute</command>
 | 
			
		||||
			</action>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<!-- Reload and Exit keybinds -->
 | 
			
		||||
		<keybind key="W-S-BackSpace">
 | 
			
		||||
			<action name="Restart"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-S-r">
 | 
			
		||||
			<action name="Reconfigure"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
		<keybind key="W-S-q">
 | 
			
		||||
			<action name="Exit"/>
 | 
			
		||||
		</keybind>
 | 
			
		||||
	</keyboard>
 | 
			
		||||
	<mouse>
 | 
			
		||||
		<dragThreshold>1</dragThreshold>
 | 
			
		||||
		<!-- number of pixels the mouse must move before a drag begins -->
 | 
			
		||||
		<doubleClickTime>500</doubleClickTime>
 | 
			
		||||
		<!-- in milliseconds (1000 = 1 second) -->
 | 
			
		||||
		<screenEdgeWarpTime>0</screenEdgeWarpTime>
 | 
			
		||||
		<!-- Time before changing desktops when the pointer touches the edge of the
 | 
			
		||||
		screen while moving a window, in milliseconds (1000 = 1 second).
 | 
			
		||||
		Set this to 0 to disable warping -->
 | 
			
		||||
		<screenEdgeWarpMouse>false</screenEdgeWarpMouse>
 | 
			
		||||
		<!-- Set this to TRUE to move the mouse pointer across the desktop when
 | 
			
		||||
		switching due to hitting the edge of the screen -->
 | 
			
		||||
		<context name="Desktop">
 | 
			
		||||
			<mousebind button="W-Down" action="Click">
 | 
			
		||||
				<action name="GoToDesktop">
 | 
			
		||||
				<to>right</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="W-Up" action="Click">
 | 
			
		||||
				<action name="GoToDesktop">
 | 
			
		||||
				<to>left</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Frame">
 | 
			
		||||
			<mousebind button="W-Down" action="Click">
 | 
			
		||||
				<action name="GoToDesktop">
 | 
			
		||||
				<to>right</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="W-Up" action="Click">
 | 
			
		||||
				<action name="GoToDesktop">
 | 
			
		||||
				<to>left</to>
 | 
			
		||||
				<wrap>no</wrap>
 | 
			
		||||
			</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Frame">
 | 
			
		||||
			<mousebind button="W-Left" action="Drag">
 | 
			
		||||
				<action name="Move"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Titlebar">
 | 
			
		||||
			<mousebind button="Left" action="Drag">
 | 
			
		||||
				<action name="Move"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Left" action="DoubleClick">
 | 
			
		||||
				<action name="ToggleMaximizeFull"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Up" action="Click">
 | 
			
		||||
				<action name="if">
 | 
			
		||||
					<shaded>no</shaded>
 | 
			
		||||
					<then>
 | 
			
		||||
						<action name="Shade"/>
 | 
			
		||||
					</then>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Down" action="Click">
 | 
			
		||||
				<action name="if">
 | 
			
		||||
					<shaded>yes</shaded>
 | 
			
		||||
					<then>
 | 
			
		||||
						<action name="Unshade"/>
 | 
			
		||||
						<action name="Raise"/>
 | 
			
		||||
					</then>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Right" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
				<action name="ShowMenu">
 | 
			
		||||
					<menu>client-menu</menu>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Top">
 | 
			
		||||
			<mousebind button="Left" action="Drag">
 | 
			
		||||
				<action name="Resize">
 | 
			
		||||
					<edge>top</edge>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Left">
 | 
			
		||||
			<mousebind button="Left" action="Drag">
 | 
			
		||||
				<action name="Resize">
 | 
			
		||||
					<edge>left</edge>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Right">
 | 
			
		||||
			<mousebind button="Left" action="Drag">
 | 
			
		||||
				<action name="Resize">
 | 
			
		||||
					<edge>right</edge>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Bottom">
 | 
			
		||||
			<mousebind button="Left" action="Drag">
 | 
			
		||||
				<action name="Resize">
 | 
			
		||||
					<edge>bottom</edge>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Right" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
				<action name="ShowMenu">
 | 
			
		||||
					<menu>client-menu</menu>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="TRCorner BRCorner TLCorner BLCorner">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
				<action name="Unshade"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Left" action="Drag">
 | 
			
		||||
				<action name="Resize"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Client">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Right" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Icon">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
				<action name="Unshade"/>
 | 
			
		||||
				<action name="ShowMenu">
 | 
			
		||||
					<menu>client-menu</menu>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Right" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
				<action name="ShowMenu">
 | 
			
		||||
					<menu>client-menu</menu>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="AllDesktops">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
				<action name="Unshade"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Left" action="Click">
 | 
			
		||||
				<action name="ToggleOmnipresent"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Shade">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Left" action="Click">
 | 
			
		||||
				<action name="ToggleShade"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Iconify">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Left" action="Click">
 | 
			
		||||
				<action name="Iconify"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Maximize">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
				<action name="Unshade"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Left" action="Click">
 | 
			
		||||
				<action name="ToggleMaximize"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Close">
 | 
			
		||||
			<mousebind button="Left" action="Press">
 | 
			
		||||
				<action name="Focus"/>
 | 
			
		||||
				<action name="Raise"/>
 | 
			
		||||
				<action name="Unshade"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Left" action="Click">
 | 
			
		||||
				<action name="Close"/>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
		<context name="Root">
 | 
			
		||||
			<!-- Menus -->
 | 
			
		||||
			<mousebind button="Right" action="Press">
 | 
			
		||||
				<action name="ShowMenu">
 | 
			
		||||
					<menu>root-menu</menu>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
			<mousebind button="Left" action="DoubleClick">
 | 
			
		||||
				<action name="ShowMenu">
 | 
			
		||||
					<menu>client-list-combined-menu</menu>
 | 
			
		||||
				</action>
 | 
			
		||||
			</mousebind>
 | 
			
		||||
		</context>
 | 
			
		||||
	</mouse>
 | 
			
		||||
	<menu>
 | 
			
		||||
		<file>menu.xml</file>
 | 
			
		||||
		<hideDelay>200</hideDelay>
 | 
			
		||||
		<!-- if a press-release lasts longer than this setting (in milliseconds), 
 | 
			
		||||
		the menu is hidden again -->
 | 
			
		||||
		<middle>no</middle>
 | 
			
		||||
		<!-- center submenus vertically about the parent entry -->
 | 
			
		||||
		<submenuShowDelay>100</submenuShowDelay>
 | 
			
		||||
		<!-- time to delay before showing a submenu after hovering over the parent entry.
 | 
			
		||||
		if this is a negative value, then the delay is infinite and the
 | 
			
		||||
		submenu will not be shown until it is clicked on -->
 | 
			
		||||
		<submenuHideDelay>400</submenuHideDelay>
 | 
			
		||||
		<!-- time to delay before hiding a submenu when selecting another entry in parent menu
 | 
			
		||||
		if this is a negative value, then the delay is infinite and the
 | 
			
		||||
		submenu will not be hidden until a different submenu is opened -->
 | 
			
		||||
		<showIcons>no</showIcons>
 | 
			
		||||
		<!-- controls if icons appear in the client-list-(combined-)menu -->
 | 
			
		||||
		<manageDesktops>yes</manageDesktops>
 | 
			
		||||
		<!-- show the manage desktops section in the client-list-(combined-)menu -->
 | 
			
		||||
	</menu>
 | 
			
		||||
</openbox_config>
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/shade.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define shade_width 12
 | 
			
		||||
#define shade_height 12
 | 
			
		||||
static unsigned char shade_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										5
									
								
								jaci/dotfiles/labwc/shade_toggled.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
			
		||||
#define shade_toggled_width 12
 | 
			
		||||
#define shade_toggled_height 12
 | 
			
		||||
static unsigned char shade_toggled_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										70
									
								
								jaci/dotfiles/labwc/themerc
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,70 @@
 | 
			
		||||
!! Menu
 | 
			
		||||
menu.border.width: 8
 | 
			
		||||
menu.border.color: #f9faf4
 | 
			
		||||
menu.overlap.x: -10
 | 
			
		||||
menu.title.bg: flat
 | 
			
		||||
menu.title.bg.color: #f9faf4
 | 
			
		||||
menu.title.text.color: #947e7b
 | 
			
		||||
menu.title.text.justify: center
 | 
			
		||||
menu.items.bg: flat
 | 
			
		||||
menu.items.bg.color: #f9faf4
 | 
			
		||||
menu.items.text.color: #947e7b
 | 
			
		||||
menu.items.active.bg: flat
 | 
			
		||||
menu.items.active.bg.color: #aecdad
 | 
			
		||||
menu.items.active.text.color: #526b6e
 | 
			
		||||
menu.items.disabled.text.color: #4d5066
 | 
			
		||||
menu.items.justify: left
 | 
			
		||||
menu.separator.padding.height: 2
 | 
			
		||||
menu.separator.color: #f9faf4
 | 
			
		||||
 | 
			
		||||
!! Titlebar
 | 
			
		||||
window.*.title.bg: flat
 | 
			
		||||
window.*.label.bg: parentrelative
 | 
			
		||||
window.active.title.bg.color: #e7e8eb
 | 
			
		||||
window.active.label.text.color: #70788d
 | 
			
		||||
window.inactive.title.bg.color: #e7e8eb
 | 
			
		||||
window.inactive.label.text.color: #d3d3d6
 | 
			
		||||
window.label.text.justify: center
 | 
			
		||||
 | 
			
		||||
!! Titlebar buttons
 | 
			
		||||
window.*.button.*.bg: parentrelative
 | 
			
		||||
window.*.button.*.pressed.bg: flat
 | 
			
		||||
window.active.button.*.image.color: #70788d
 | 
			
		||||
window.active.button.*.hover.image.color: #aecdad
 | 
			
		||||
window.active.button.*.pressed.bg.color: #aecdad
 | 
			
		||||
window.active.button.disabled.image.color: #d3d3d6
 | 
			
		||||
window.inactive.button.*.image.color: #d3d3d6
 | 
			
		||||
window.inactive.button.disabled.image.color: #d3d3d6
 | 
			
		||||
 | 
			
		||||
!! Borders
 | 
			
		||||
border.width: 0
 | 
			
		||||
padding.width: 12
 | 
			
		||||
padding.height: 8
 | 
			
		||||
window.client.padding.width: 0
 | 
			
		||||
window.client.padding.height: 0
 | 
			
		||||
window.handle.width: 2
 | 
			
		||||
window.active.border.color: #e7e8eb
 | 
			
		||||
window.active.client.color:  #e7e8eb
 | 
			
		||||
window.active.handle.bg: flat
 | 
			
		||||
window.active.handle.bg.color: #e7e8eb
 | 
			
		||||
window.active.grip.bg: flat
 | 
			
		||||
window.active.grip.bg.color: #e7e8eb
 | 
			
		||||
window.inactive.grip.bg: flat
 | 
			
		||||
window.inactive.grip.bg.color: #e7e8eb
 | 
			
		||||
window.inactive.border.color: #e7e8eb
 | 
			
		||||
window.inactive.handle.bg: flat
 | 
			
		||||
window.inactive.handle.bg.color: #e7e8eb
 | 
			
		||||
window.inactive.client.color: #e7e8eb
 | 
			
		||||
 | 
			
		||||
!! OSD
 | 
			
		||||
osd.border.width: 1
 | 
			
		||||
osd.border.color: #e7e8eb
 | 
			
		||||
osd.label.text.color: #5c616c
 | 
			
		||||
osd.bg: flat
 | 
			
		||||
osd.bg.color: #e7e8eb
 | 
			
		||||
osd.label.bg: flat
 | 
			
		||||
osd.label.bg.color: #e7e8eb
 | 
			
		||||
osd.hilight.bg: flat
 | 
			
		||||
osd.hilight.bg.color: #aecdad
 | 
			
		||||
osd.unhilight.bg: flat solid
 | 
			
		||||
osd.unhilight.bg.color: #70788d
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								jaci/dotfiles/paper-openbox-200409.zip
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -30,7 +30,7 @@ in
 | 
			
		||||
                        engines = {
 | 
			
		||||
                            "Startpage" = {
 | 
			
		||||
                                urls = [{
 | 
			
		||||
                                    template = "https://www.startpage.com/do/mypage.pl?prfe=a1ffaae1a3f4dc133b6e11b3d611db561598fc16fbc43a22c2694805a5b4d46852c848cb54f3ccbc9cea0e8e83dab567d3abe2b350870e7781f8701d4558a1c988aced444d1e8d8a7b830563/search?query={searchTerms}";
 | 
			
		||||
                                    template = "https://www.startpage.com/sp/search?query={searchTerms}";
 | 
			
		||||
                                }];
 | 
			
		||||
                            };
 | 
			
		||||
                        };
 | 
			
		||||
							
								
								
									
										203
									
								
								jaci/modules/home-manager/home.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,203 @@
 | 
			
		||||
{ inputs, outputs, lib, config, pkgs, ... }:
 | 
			
		||||
  let
 | 
			
		||||
    userName = "jaci";
 | 
			
		||||
    fullName = "Jaci Anderson";
 | 
			
		||||
    email = "jaci.s.anderson@gmail.com";
 | 
			
		||||
  in
 | 
			
		||||
{
 | 
			
		||||
  # nixpkgs.overlays = [
 | 
			
		||||
  #   inputs.nur.overlay
 | 
			
		||||
  # ];
 | 
			
		||||
 | 
			
		||||
  # nixpkgs.config.allowUnfree = true;
 | 
			
		||||
  # inputs.nixpkgs-stable.config.allowUnfree = true;
 | 
			
		||||
  imports = [
 | 
			
		||||
      ../apps/firefox/firefox.nix
 | 
			
		||||
  ];
 | 
			
		||||
  
 | 
			
		||||
  home.username = userName;
 | 
			
		||||
  home.homeDirectory = "/home/${userName}";
 | 
			
		||||
 | 
			
		||||
  programs.home-manager.enable = true;
 | 
			
		||||
 | 
			
		||||
  home.stateVersion = "23.11"; # Please read the comment before changing.
 | 
			
		||||
 | 
			
		||||
  # The home.packages option allows you to install Nix packages into your
 | 
			
		||||
  # environment.
 | 
			
		||||
  firefoxApp.enable = true;
 | 
			
		||||
  
 | 
			
		||||
  fonts.fontconfig.enable = true;
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # nur.repos.crazazy.js.eslint
 | 
			
		||||
    # inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Dev Tools
 | 
			
		||||
    #
 | 
			
		||||
    dbeaver
 | 
			
		||||
    cargo
 | 
			
		||||
    kakoune
 | 
			
		||||
    # flutter
 | 
			
		||||
    docker
 | 
			
		||||
    docker-compose
 | 
			
		||||
    python310
 | 
			
		||||
    nodejs_21
 | 
			
		||||
    zig
 | 
			
		||||
    ### LSP's
 | 
			
		||||
    rnix-lsp # Nix LSP
 | 
			
		||||
    openscad-lsp
 | 
			
		||||
    nodePackages.typescript-language-server
 | 
			
		||||
    vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
 | 
			
		||||
    rubyPackages.solargraph
 | 
			
		||||
    python310Packages.python-lsp-server
 | 
			
		||||
    zls
 | 
			
		||||
    ### Misc
 | 
			
		||||
    # android-udev-rules
 | 
			
		||||
    # android-tools
 | 
			
		||||
    # sdkmanager
 | 
			
		||||
    openscad
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Gaming
 | 
			
		||||
    #
 | 
			
		||||
    wine-wayland
 | 
			
		||||
    webcord
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Better Unix
 | 
			
		||||
    #
 | 
			
		||||
    bat
 | 
			
		||||
    duf
 | 
			
		||||
    fd
 | 
			
		||||
    fzf
 | 
			
		||||
    lsd
 | 
			
		||||
    ripgrep
 | 
			
		||||
    tre-command
 | 
			
		||||
    gtop
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Photo / Video
 | 
			
		||||
    #
 | 
			
		||||
    imv
 | 
			
		||||
    mpv
 | 
			
		||||
    gimp
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Communication
 | 
			
		||||
    #
 | 
			
		||||
    mumble
 | 
			
		||||
    slack
 | 
			
		||||
    signal-desktop
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Other
 | 
			
		||||
    #
 | 
			
		||||
    keepassxc
 | 
			
		||||
    obs-studio
 | 
			
		||||
 | 
			
		||||
    # Install fonts
 | 
			
		||||
    (nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
 | 
			
		||||
 | 
			
		||||
    # # You can also create simple shell scripts directly inside your
 | 
			
		||||
    # # configuration. For example, this adds a command 'my-hello' to your
 | 
			
		||||
    # # environment:
 | 
			
		||||
    # (pkgs.writeShellScriptBin "my-hello" ''
 | 
			
		||||
    #   echo "Hello, ${config.home.username}!"
 | 
			
		||||
    # '')
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Home Manager is pretty good at managing dotfiles. The primary way to manage
 | 
			
		||||
  # plain files is through 'home.file'.
 | 
			
		||||
  home.file."${config.xdg.configHome}" = {
 | 
			
		||||
    # # Building this configuration will create a copy of 'dotfiles/screenrc' in
 | 
			
		||||
    # # the Nix store. Activating the configuration will then make '~/.screenrc' a
 | 
			
		||||
    # # symlink to the Nix store copy.
 | 
			
		||||
    # ".screenrc".source = dotfiles/screenrc;
 | 
			
		||||
    source = ../../dotfiles;
 | 
			
		||||
    recursive = true;
 | 
			
		||||
 | 
			
		||||
    # # You can also set the file content immediately.
 | 
			
		||||
    # ".gradle/gradle.properties".text = ''
 | 
			
		||||
    #   org.gradle.console=verbose
 | 
			
		||||
    #   org.gradle.daemon.idletimeout=3600000
 | 
			
		||||
    # '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  # Home Manager can also manage your environment variables through
 | 
			
		||||
  # 'home.sessionVariables'. If you don't want to manage your shell through Home
 | 
			
		||||
  # Manager then you have to manually source 'hm-session-vars.sh' located at
 | 
			
		||||
  # either
 | 
			
		||||
  #
 | 
			
		||||
  #  ~/.nix-profile/etc/profile.d/hm-session-vars.sh
 | 
			
		||||
  #
 | 
			
		||||
  # or
 | 
			
		||||
  #
 | 
			
		||||
  #  /etc/profiles/per-user/nate/etc/profile.d/hm-session-vars.sh
 | 
			
		||||
  #
 | 
			
		||||
  home.sessionVariables = {
 | 
			
		||||
    EDITOR = "kak";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Git setup
 | 
			
		||||
  programs.git = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      userEmail = email;
 | 
			
		||||
      userName = fullName;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Zsh setup
 | 
			
		||||
  programs.zsh = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      oh-my-zsh = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          plugins = [ "git" ];
 | 
			
		||||
          theme = "half-life";
 | 
			
		||||
      };
 | 
			
		||||
      initExtra = ''
 | 
			
		||||
          alias ask="nix-shell -p python310Packages.openai --run 'python ~/source/python/chat.py'"
 | 
			
		||||
 | 
			
		||||
          fzf_projects() {
 | 
			
		||||
              DIR=`
 | 
			
		||||
              fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \
 | 
			
		||||
              xargs dirname | \
 | 
			
		||||
              sed 's|$HOME||g' | \
 | 
			
		||||
              sort | \
 | 
			
		||||
              uniq | \
 | 
			
		||||
              fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \
 | 
			
		||||
              xargs printf "$HOME/%s/"
 | 
			
		||||
              `
 | 
			
		||||
              cd $DIR
 | 
			
		||||
          }
 | 
			
		||||
          alias p="fzf_projects source/"
 | 
			
		||||
 | 
			
		||||
          ### Busykid Bash Functions
 | 
			
		||||
 | 
			
		||||
       '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Theming qt and gnome apps
 | 
			
		||||
    #
 | 
			
		||||
 | 
			
		||||
    qt = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      platformTheme = "gtk";
 | 
			
		||||
      style.name = "adwaita-dark";
 | 
			
		||||
      style.package = pkgs.adwaita-qt;
 | 
			
		||||
    };
 | 
			
		||||
    gtk = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        cursorTheme.package = pkgs.catppuccin-cursors;
 | 
			
		||||
        cursorTheme.name = "latteFlamingo";
 | 
			
		||||
        theme = {
 | 
			
		||||
            name = "Catppuccin-Latte-Pink";
 | 
			
		||||
            package = pkgs.catppuccin-gtk.override {
 | 
			
		||||
                accents = [ "pink" ];
 | 
			
		||||
                tweaks = [ ];
 | 
			
		||||
                variant = "latte";
 | 
			
		||||
            };
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										132
									
								
								jaci/modules/labwc/labwc_conf.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,132 @@
 | 
			
		||||
{ lib, config, pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    options.labwc = {
 | 
			
		||||
        enable = lib.mkEnableOption "Enable labwc window manager.";
 | 
			
		||||
        useNonFree = lib.mkOption {
 | 
			
		||||
            default = false;
 | 
			
		||||
            example = true;
 | 
			
		||||
            description = "Whether to enable non-free software in the labwc config";
 | 
			
		||||
        };
 | 
			
		||||
        installGaming = lib.mkOption {
 | 
			
		||||
            default = false;
 | 
			
		||||
            example = true;
 | 
			
		||||
            description = "Whether to install gaming software on the system.";
 | 
			
		||||
        };
 | 
			
		||||
        systemPackages = lib.mkOption {
 | 
			
		||||
            default = [];
 | 
			
		||||
            description = "Add any additional packages desired. Merged with labwc defaults.";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    ###
 | 
			
		||||
    ##  Configuration
 | 
			
		||||
    ###
 | 
			
		||||
    config = lib.mkIf config.labwc.enable {
 | 
			
		||||
 | 
			
		||||
        programs.sway.enable = true;
 | 
			
		||||
 | 
			
		||||
        nixpkgs.config.allowUnfree = config.labwc.useNonFree;
 | 
			
		||||
        # For R2ModMan
 | 
			
		||||
        # nixpkgs.config.permittedInsecurePackages = [
 | 
			
		||||
        #     "electron-25.9.0"
 | 
			
		||||
        # ];
 | 
			
		||||
        
 | 
			
		||||
        ###
 | 
			
		||||
        ##  XDG portal setup
 | 
			
		||||
        ###
 | 
			
		||||
        xdg.portal = {
 | 
			
		||||
            config = {
 | 
			
		||||
                common = {
 | 
			
		||||
                  default = [
 | 
			
		||||
                    "wlr"
 | 
			
		||||
                  ];
 | 
			
		||||
                };
 | 
			
		||||
            };
 | 
			
		||||
            extraPortals = with pkgs; [
 | 
			
		||||
                xdg-desktop-portal-gtk
 | 
			
		||||
            ];
 | 
			
		||||
            wlr.enable = true;
 | 
			
		||||
            enable = true;
 | 
			
		||||
        };
 | 
			
		||||
        xdg.sounds.enable = true;
 | 
			
		||||
 | 
			
		||||
        ###
 | 
			
		||||
        ##  System Packages
 | 
			
		||||
        ###
 | 
			
		||||
        environment.systemPackages = with pkgs; lib.lists.flatten [
 | 
			
		||||
             [
 | 
			
		||||
                bash
 | 
			
		||||
                foot
 | 
			
		||||
                git
 | 
			
		||||
                glib # gsettings
 | 
			
		||||
                grim
 | 
			
		||||
                labwc
 | 
			
		||||
                libnotify
 | 
			
		||||
                mako
 | 
			
		||||
                ncspot
 | 
			
		||||
                networkmanagerapplet
 | 
			
		||||
                pavucontrol
 | 
			
		||||
                slurp
 | 
			
		||||
                swaylock
 | 
			
		||||
                swayidle
 | 
			
		||||
                swww
 | 
			
		||||
                wl-clipboard
 | 
			
		||||
                waybar
 | 
			
		||||
                wdisplays
 | 
			
		||||
                wofi
 | 
			
		||||
                xdg-utils
 | 
			
		||||
                zsh
 | 
			
		||||
                # Fonts
 | 
			
		||||
             ]
 | 
			
		||||
            config.labwc.systemPackages
 | 
			
		||||
            # (lib.mkIf config.labwc.installGaming [
 | 
			
		||||
            #     pkgs.lutris
 | 
			
		||||
            # ])
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        environment.loginShellInit = ''
 | 
			
		||||
            [[ "$(tty)" == /dev/tty1 ]] && labwc
 | 
			
		||||
        '';
 | 
			
		||||
        # Thunar config
 | 
			
		||||
        programs.thunar = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            plugins = with pkgs.xfce; [
 | 
			
		||||
                thunar-archive-plugin
 | 
			
		||||
                thunar-volman
 | 
			
		||||
            ];
 | 
			
		||||
        };
 | 
			
		||||
        programs.file-roller.enable = true;
 | 
			
		||||
        programs.xfconf.enable = true;
 | 
			
		||||
 | 
			
		||||
        programs.zsh.enable = true;
 | 
			
		||||
        programs.steam.enable = config.labwc.installGaming;
 | 
			
		||||
 | 
			
		||||
        # kdeconnect setup
 | 
			
		||||
        programs.kdeconnect.enable = true;
 | 
			
		||||
 | 
			
		||||
        ###
 | 
			
		||||
        ##  Services
 | 
			
		||||
        ###
 | 
			
		||||
        services.gvfs.enable = true;  # thunar functionalities
 | 
			
		||||
        services.openssh.enable = true;
 | 
			
		||||
        services.dbus.enable = true;
 | 
			
		||||
        services.pipewire = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          alsa.enable = true;
 | 
			
		||||
          pulse.enable = true;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        ###
 | 
			
		||||
        ##  Misc
 | 
			
		||||
        ###
 | 
			
		||||
        sound.enable = true;
 | 
			
		||||
        # Necessary for home-manager labwc setup
 | 
			
		||||
        security.polkit.enable = true;
 | 
			
		||||
 | 
			
		||||
        hardware.opengl = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            driSupport = true;
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								nate/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,39 @@
 | 
			
		||||
{ config, lib, inputs, outputs, pkgs, system, timeZone, ... }:
 | 
			
		||||
  let
 | 
			
		||||
    userName = "nate";
 | 
			
		||||
    fullName = "Nate Anderson";
 | 
			
		||||
    email = "n8r@tuta.io";
 | 
			
		||||
    hostName = "winmax";
 | 
			
		||||
    desktop = "sway";
 | 
			
		||||
    gaming = true;
 | 
			
		||||
  in
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
      ./desktop-configuration.nix
 | 
			
		||||
      ./nixos/hardware-configuration.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  deskCfg = {
 | 
			
		||||
      userName = userName;
 | 
			
		||||
      hostName = hostName;
 | 
			
		||||
      de = desktop;
 | 
			
		||||
      installGaming = gaming;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Limit the number of generations to keep
 | 
			
		||||
  boot.loader.systemd-boot.configurationLimit = 5;
 | 
			
		||||
 | 
			
		||||
  # Perform garbage collection weekly to maintain low disk usage
 | 
			
		||||
  nix.gc = {
 | 
			
		||||
    automatic = true;
 | 
			
		||||
    dates = "weekly";
 | 
			
		||||
    options = "--delete-older-than 1w";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Optimize storage
 | 
			
		||||
  # You can also manually optimize the store via:
 | 
			
		||||
  #    nix-store --optimise
 | 
			
		||||
  # Refer to the following link for more details:
 | 
			
		||||
  # https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store
 | 
			
		||||
  nix.settings.auto-optimise-store = true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										82
									
								
								nate/desktop-configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,82 @@
 | 
			
		||||
{ config, lib, inputs, outputs, pkgs, timeZone, system, ... }:
 | 
			
		||||
let
 | 
			
		||||
  supportedDesktops = [ "sway" ];
 | 
			
		||||
  supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
 | 
			
		||||
  deskCfg = config.deskCfg;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.deskCfg = {
 | 
			
		||||
      de = lib.mkOption {
 | 
			
		||||
          default = "sway";
 | 
			
		||||
          type = lib.types.str;
 | 
			
		||||
          description = "Desktop Environment";
 | 
			
		||||
      };
 | 
			
		||||
      userName = lib.mkOption {
 | 
			
		||||
          type = lib.types.str;
 | 
			
		||||
          description = "Main username for system";
 | 
			
		||||
      };
 | 
			
		||||
      hostName = lib.mkOption {
 | 
			
		||||
          type = lib.types.str;
 | 
			
		||||
          description = "Hostname for system";
 | 
			
		||||
      };
 | 
			
		||||
      installGaming = lib.mkOption {
 | 
			
		||||
          type = lib.types.bool;
 | 
			
		||||
          default = true;
 | 
			
		||||
          description = "Whether to install gaming software or not";
 | 
			
		||||
      };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    imports = [
 | 
			
		||||
      modules/user/main_user.nix
 | 
			
		||||
      modules/sway/sway_conf.nix
 | 
			
		||||
 | 
			
		||||
      # inputs.nur.hmModules.nur
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
   config = {
 | 
			
		||||
    assertions = [
 | 
			
		||||
      {
 | 
			
		||||
        assertion = builtins.elem deskCfg.de supportedDesktops;
 | 
			
		||||
        message = "Unsupported desktop environment: ${deskCfg.de}\nSupported DE's: ${supportedDesktopsStr}";
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  
 | 
			
		||||
    nixpkgs.overlays = [
 | 
			
		||||
      inputs.nur.overlay
 | 
			
		||||
    ];
 | 
			
		||||
  
 | 
			
		||||
 
 | 
			
		||||
    # Enable flakes feature
 | 
			
		||||
    nix.settings.experimental-features = [
 | 
			
		||||
      "nix-command" "flakes"
 | 
			
		||||
    ];
 | 
			
		||||
  
 | 
			
		||||
    # Use the systemd-boot EFI boot loader.
 | 
			
		||||
    boot.loader.systemd-boot.enable = true;
 | 
			
		||||
    boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
    # boot.plymouth.enable = true;
 | 
			
		||||
  
 | 
			
		||||
    networking.hostName = deskCfg.hostName; # Define your hostname.
 | 
			
		||||
    networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
 | 
			
		||||
  
 | 
			
		||||
    time.timeZone = timeZone;
 | 
			
		||||
   
 | 
			
		||||
    main_user = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      userName = deskCfg.userName;
 | 
			
		||||
      isDesktopUser = true;
 | 
			
		||||
    };
 | 
			
		||||
    
 | 
			
		||||
    swaywm = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        useNonFree = true;
 | 
			
		||||
        installGaming = deskCfg.installGaming;
 | 
			
		||||
        systemPackages = with pkgs; [
 | 
			
		||||
          libreoffice
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
   
 | 
			
		||||
    system.stateVersion = "23.11"; # Did you read the comment?
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -9,4 +9,5 @@
 | 
			
		||||
# Wacom Tablet - Example
 | 
			
		||||
#   input "1386:884:Wacom_Intuos_S_Pad" map_to_output HDMI-A-1
 | 
			
		||||
#   input "1386:884:Wacom_Intuos_S_Pen" map_to_output HDMI-A-1
 | 
			
		||||
output DP-3 resolution 2560x1440@164.956Hz position 0,0
 | 
			
		||||
output * adaptive_sync on
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
PID_FILE="background.pid"
 | 
			
		||||
WP_LOC="/home/nate/.config/sway/wallpapers"
 | 
			
		||||
PREV_WP=""
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# usage: import-gsettings
 | 
			
		||||
config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
SCALE_FILE="scale.txt"
 | 
			
		||||
DIRNAME="/tmp/$(ls /tmp | grep scale.sh | head -n 1)"
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 
 | 
			
		||||
entries="Active Screen Output Area Window"
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before  
							(image error) Size: 221 KiB After  
							(image error) Size: 221 KiB  
							
								 
							
							
						 | 
| 
		 Before  
							(image error) Size: 150 KiB After  
							(image error) Size: 150 KiB  
							
								 
							
							
						 | 
| 
		 Before  
							(image error) Size: 218 KiB After  
							(image error) Size: 218 KiB  
							
								 
							
							
						 | 
| 
		 Before  
							(image error) Size: 772 KiB After  
							(image error) Size: 772 KiB  
							
								 
							
							
						 | 
| 
		 Before  
							(image error) Size: 1.1 MiB After  
							(image error) Size: 1.1 MiB  
							
								 
							
							
						 | 
| 
		 Before  
							(image error) Size: 344 KiB After  
							(image error) Size: 344 KiB  
							
								 
							
							
						 | 
| 
		 Before  
							(image error) Size: 591 KiB After  
							(image error) Size: 591 KiB  
							
								 
							
							
						 | 
| 
		 Before  
							(image error) Size: 138 KiB After  
							(image error) Size: 138 KiB  
							
								 
							
							
						 | 
@ -1,4 +1,4 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
entries="Default Colemak"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										67
									
								
								nate/modules/apps/firefox/firefox.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,67 @@
 | 
			
		||||
{lib, config, pkgs, inputs, ...}:
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.firefoxApp;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
    # imports = [
 | 
			
		||||
    #     inputs.nur.hmModules.nur
 | 
			
		||||
    # ];
 | 
			
		||||
 | 
			
		||||
    options.firefoxApp = {
 | 
			
		||||
        enable = lib.mkEnableOption "enable firefox browser";
 | 
			
		||||
    };
 | 
			
		||||
    config = lib.mkIf cfg.enable {
 | 
			
		||||
        programs.firefox = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            profiles = {
 | 
			
		||||
                default = {
 | 
			
		||||
                    id = 0;
 | 
			
		||||
                    name = "default";
 | 
			
		||||
                    isDefault = true;
 | 
			
		||||
                    extensions = with pkgs; [
 | 
			
		||||
                        nur.repos.rycee.firefox-addons.darkreader
 | 
			
		||||
                        nur.repos.rycee.firefox-addons.keepassxc-browser
 | 
			
		||||
                        nur.repos.crazazy.firefox-addons.ublock-origin
 | 
			
		||||
                    ];
 | 
			
		||||
                    search = {
 | 
			
		||||
                        # Replace default firefox search engine config with this one
 | 
			
		||||
                        force = true;
 | 
			
		||||
                        default = "Startpage";
 | 
			
		||||
                        engines = {
 | 
			
		||||
                            "Startpage" = {
 | 
			
		||||
                                urls = [{
 | 
			
		||||
                                    template = "https://www.startpage.com/sp/search?query={searchTerms}";
 | 
			
		||||
                                }];
 | 
			
		||||
                            };
 | 
			
		||||
                        };
 | 
			
		||||
                    };
 | 
			
		||||
                    settings = {
 | 
			
		||||
                       "browser.startup.blankWindow" = true;
 | 
			
		||||
                       "browser.startup.homepage" = "about:blank";
 | 
			
		||||
                       "browser.newtabpage.enabled" = false;
 | 
			
		||||
                       "browser.search.region" = "US";
 | 
			
		||||
                       "browser.search.isUS" = true;
 | 
			
		||||
                       "distribution.searchplugins.defaultLocale" = "en-US";
 | 
			
		||||
                       "general.useragent.locale" = "en-US";
 | 
			
		||||
                       "extensions.activeThemeID" = "{831b8843-7251-4306-9521-e688f18b4aeb}";
 | 
			
		||||
                       "privacy.trackingprotection.enable" = true;
 | 
			
		||||
                       "privacy.trackingprotection.emailtracking.enable" = true;
 | 
			
		||||
                       "privacy.trackingprotection.socialtracking.enable" = true;
 | 
			
		||||
                       "privacy.clearOnShutdown.cookies" = true;
 | 
			
		||||
                       "browser.safebrowsing.passwords.enabled" = false;
 | 
			
		||||
                       "browser.migrate.interactions.passwords" = false;
 | 
			
		||||
                       "pref.privacy.disable_button.view_passwords" = false;
 | 
			
		||||
                       "signon.rememberSignon" = false;
 | 
			
		||||
                       "extensions.formautofill.creditCards.enabled" = false;
 | 
			
		||||
                       "extensions.formautofill.addresses.enabled" = false;
 | 
			
		||||
                        # "browser.bookmarks.showMobileBookmarks" = true;
 | 
			
		||||
                       # "browser.newtabpage.pinned" = [{
 | 
			
		||||
                       #   title = "NixOS";
 | 
			
		||||
                       #   url = "https://nixos.org";
 | 
			
		||||
                       # }];
 | 
			
		||||
                   };
 | 
			
		||||
                };
 | 
			
		||||
            };
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
@ -1,9 +1,10 @@
 | 
			
		||||
{ inputs, outputs, lib, config, pkgs, userName, fullName, email, hostName, desktop, gaming, ... }:
 | 
			
		||||
{ inputs, outputs, lib, config, pkgs, ... }:
 | 
			
		||||
  let
 | 
			
		||||
    userName = "nate";
 | 
			
		||||
    fullName = "Nathan Anderson";
 | 
			
		||||
    email = "n8r@tuta.io";
 | 
			
		||||
  in
 | 
			
		||||
{
 | 
			
		||||
  # Home Manager needs a bit of information about you and the paths it should
 | 
			
		||||
  # manage.
 | 
			
		||||
  #
 | 
			
		||||
 | 
			
		||||
  # nixpkgs.overlays = [
 | 
			
		||||
  #   inputs.nur.overlay
 | 
			
		||||
  # ];
 | 
			
		||||
@ -29,13 +30,74 @@
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # nur.repos.crazazy.js.eslint
 | 
			
		||||
    # inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
 | 
			
		||||
    # kakoune
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Dev Tools
 | 
			
		||||
    #
 | 
			
		||||
    dbeaver
 | 
			
		||||
    cargo
 | 
			
		||||
    kakoune
 | 
			
		||||
    # flutter
 | 
			
		||||
    docker
 | 
			
		||||
    docker-compose
 | 
			
		||||
    python310
 | 
			
		||||
    nodejs_21
 | 
			
		||||
    zig
 | 
			
		||||
    ### LSP's
 | 
			
		||||
    rnix-lsp # Nix LSP
 | 
			
		||||
    openscad-lsp
 | 
			
		||||
    nodePackages.typescript-language-server
 | 
			
		||||
    vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
 | 
			
		||||
    rubyPackages.solargraph
 | 
			
		||||
    python310Packages.python-lsp-server
 | 
			
		||||
    zls
 | 
			
		||||
    ### Misc
 | 
			
		||||
    # android-udev-rules
 | 
			
		||||
    # android-tools
 | 
			
		||||
    # sdkmanager
 | 
			
		||||
    openscad
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Gaming
 | 
			
		||||
    #
 | 
			
		||||
    wine-wayland
 | 
			
		||||
    webcord
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Better Unix
 | 
			
		||||
    #
 | 
			
		||||
    bat
 | 
			
		||||
    duf
 | 
			
		||||
    fd
 | 
			
		||||
    fzf
 | 
			
		||||
    lsd
 | 
			
		||||
    ripgrep
 | 
			
		||||
    tre-command
 | 
			
		||||
    gtop
 | 
			
		||||
    # Normies
 | 
			
		||||
    unzip
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Photo / Video
 | 
			
		||||
    #
 | 
			
		||||
    davinci-resolve-studio
 | 
			
		||||
    imv
 | 
			
		||||
    mpv
 | 
			
		||||
    gimp
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Communication
 | 
			
		||||
    #
 | 
			
		||||
    mumble
 | 
			
		||||
    slack
 | 
			
		||||
    signal-desktop
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # Other
 | 
			
		||||
    #
 | 
			
		||||
    keepassxc
 | 
			
		||||
    obs-studio
 | 
			
		||||
    signal-desktop
 | 
			
		||||
    waybar
 | 
			
		||||
    wofi
 | 
			
		||||
    xfce.thunar
 | 
			
		||||
 | 
			
		||||
    # Install fonts
 | 
			
		||||
    (nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
 | 
			
		||||
 | 
			
		||||
@ -47,10 +109,6 @@
 | 
			
		||||
    # '')
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # TODO not working firefox plugins
 | 
			
		||||
  # extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ ublock-origin bitwarden ];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  # Home Manager is pretty good at managing dotfiles. The primary way to manage
 | 
			
		||||
  # plain files is through 'home.file'.
 | 
			
		||||
  home.file."${config.xdg.configHome}" = {
 | 
			
		||||
@ -85,24 +143,6 @@
 | 
			
		||||
    XDG_CURRENT_DESKTOP="sway";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  wayland.windowManager.sway = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      # config = rec {
 | 
			
		||||
      #     modifier = "Mod4";
 | 
			
		||||
      #     terminal = "foot";
 | 
			
		||||
      #     # startup = [
 | 
			
		||||
      #     #     {command = "firefox";}
 | 
			
		||||
      #     # ];
 | 
			
		||||
      # };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  # kdeconnect setup
 | 
			
		||||
  # services.kdeconnect = {
 | 
			
		||||
  #     enable = true;
 | 
			
		||||
  #     indicator = true;
 | 
			
		||||
  # };
 | 
			
		||||
 | 
			
		||||
  # Git setup
 | 
			
		||||
  programs.git = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
@ -113,9 +153,6 @@
 | 
			
		||||
  # Zsh setup
 | 
			
		||||
  programs.zsh = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      #history = {
 | 
			
		||||
      #    Size = 10000;
 | 
			
		||||
      #};
 | 
			
		||||
      oh-my-zsh = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          plugins = [ "git" ];
 | 
			
		||||
@ -143,4 +180,23 @@
 | 
			
		||||
       '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    qt = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      platformTheme = "gtk";
 | 
			
		||||
      style.name = "adwaita-dark";
 | 
			
		||||
      style.package = pkgs.adwaita-qt;
 | 
			
		||||
    };
 | 
			
		||||
    gtk = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        cursorTheme.package = pkgs.catppuccin-cursors;
 | 
			
		||||
        cursorTheme.name = "latteFlamingo";
 | 
			
		||||
        theme = {
 | 
			
		||||
            name = "Catppuccin-Latte-Pink";
 | 
			
		||||
            package = pkgs.catppuccin-gtk.override {
 | 
			
		||||
                accents = [ "pink" ];
 | 
			
		||||
                tweaks = [ ];
 | 
			
		||||
                variant = "latte";
 | 
			
		||||
            };
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
@ -22,14 +22,15 @@
 | 
			
		||||
    ###
 | 
			
		||||
    ##  Configuration
 | 
			
		||||
    ###
 | 
			
		||||
 | 
			
		||||
    config = lib.mkIf config.swaywm.enable {
 | 
			
		||||
 | 
			
		||||
        programs.sway.enable = true;
 | 
			
		||||
 | 
			
		||||
        nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
 | 
			
		||||
        # For R2ModMan
 | 
			
		||||
        nixpkgs.config.permittedInsecurePackages = [
 | 
			
		||||
            "electron-25.9.0"
 | 
			
		||||
        ];
 | 
			
		||||
        # nixpkgs.config.permittedInsecurePackages = [
 | 
			
		||||
        #     "electron-25.9.0"
 | 
			
		||||
        # ];
 | 
			
		||||
        
 | 
			
		||||
        ###
 | 
			
		||||
        ##  XDG portal setup
 | 
			
		||||
@ -69,12 +70,14 @@
 | 
			
		||||
                slurp
 | 
			
		||||
                swaylock
 | 
			
		||||
                swayidle
 | 
			
		||||
                swww
 | 
			
		||||
                wl-clipboard
 | 
			
		||||
                waybar
 | 
			
		||||
                wdisplays
 | 
			
		||||
                wofi
 | 
			
		||||
                xdg-utils
 | 
			
		||||
                zsh
 | 
			
		||||
                # Fonts
 | 
			
		||||
 | 
			
		||||
             ]
 | 
			
		||||
            config.swaywm.systemPackages
 | 
			
		||||
            # (lib.mkIf config.swaywm.installGaming [
 | 
			
		||||
@ -82,6 +85,9 @@
 | 
			
		||||
            # ])
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        environment.loginShellInit = ''
 | 
			
		||||
            [[ "$(tty)" == /dev/tty1 ]] && sway
 | 
			
		||||
        '';
 | 
			
		||||
        # Thunar config
 | 
			
		||||
        programs.thunar = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
@ -96,6 +102,9 @@
 | 
			
		||||
        programs.zsh.enable = true;
 | 
			
		||||
        programs.steam.enable = config.swaywm.installGaming;
 | 
			
		||||
 | 
			
		||||
        programs.adb.enable = true;
 | 
			
		||||
        # kdeconnect setup
 | 
			
		||||
        programs.kdeconnect.enable = true;
 | 
			
		||||
 | 
			
		||||
        ###
 | 
			
		||||
        ##  Services
 | 
			
		||||
@ -109,9 +118,6 @@
 | 
			
		||||
          pulse.enable = true;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        # kdeconnect setup
 | 
			
		||||
        programs.kdeconnect.enable = true;
 | 
			
		||||
 | 
			
		||||
        ###
 | 
			
		||||
        ##  Misc
 | 
			
		||||
        ###
 | 
			
		||||
@ -119,10 +125,13 @@
 | 
			
		||||
        # Necessary for home-manager sway setup
 | 
			
		||||
        security.polkit.enable = true;
 | 
			
		||||
 | 
			
		||||
        # Use amdgpu-pro drivers for davinci
 | 
			
		||||
        # services.xserver.videoDrivers = [ "amdgpu-pro" ];
 | 
			
		||||
        hardware.opengl = {
 | 
			
		||||
            # Mesa
 | 
			
		||||
            enable = true;
 | 
			
		||||
            # Vulkan
 | 
			
		||||
            driSupport = true;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
@ -50,3 +50,4 @@ in
 | 
			
		||||
            })
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								nate/nixos/hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,44 @@
 | 
			
		||||
# 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 = [ "xhci_pci" "ahci" "usbhid" "uas" "usb_storage" "sd_mod" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ "amdgpu" ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-amd" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/e48c53a4-6e7d-4b12-a46e-a408956268ea";
 | 
			
		||||
      fsType = "ext4";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/82B2-9D40";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/home/nate/Games" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/d66b7920-2c29-400a-be51-0b3890ea63db";
 | 
			
		||||
      fsType = "ext4";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  # 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.enp1s0f0u2u1u4.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
 | 
			
		||||
# 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, userName, hostName, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ # Include the results of the hardware scan.
 | 
			
		||||
      ./hardware-configuration.nix
 | 
			
		||||
      ./sway_configuration.nix
 | 
			
		||||
      # ../modules/user/main_user.nix
 | 
			
		||||
      # ../modules/sway/sway_conf.nix
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
  # Enable flakes feature
 | 
			
		||||
  nix.settings.experimental-features = [
 | 
			
		||||
    "nix-command" "flakes"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  programs.nix-ld.enable = true;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  system.stateVersion = "23.11"; # Did you read the comment?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,123 +0,0 @@
 | 
			
		||||
{ config, lib, inputs, outputs, pkgs, userName, hostName, desktop, timeZone, gaming, system, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  supportedDesktops = [ "sway" ];
 | 
			
		||||
  supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  assertions = [
 | 
			
		||||
    {
 | 
			
		||||
      assertion = builtins.elem desktop supportedDesktops;
 | 
			
		||||
      message = "Unsupported desktop environment: ${desktop}\nSupported DE's: ${supportedDesktopsStr}";
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nixpkgs.overlays = [
 | 
			
		||||
    inputs.nur.overlay
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  imports = [ # Include the results of the hardware scan.
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
    ../modules/user/main_user.nix
 | 
			
		||||
    ../modules/sway/sway_conf.nix
 | 
			
		||||
    # inputs.nur.hmModules.nur
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Enable flakes feature
 | 
			
		||||
  nix.settings.experimental-features = [
 | 
			
		||||
    "nix-command" "flakes"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # programs.nix-ld.dev.enable = true;
 | 
			
		||||
 | 
			
		||||
  # nixpkgs.config.allowUnfree = true;
 | 
			
		||||
 | 
			
		||||
  # Use the systemd-boot EFI boot loader.
 | 
			
		||||
  boot.loader.systemd-boot.enable = true;
 | 
			
		||||
  boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
 | 
			
		||||
  networking.hostName = hostName; # Define your hostname.
 | 
			
		||||
  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
 | 
			
		||||
 | 
			
		||||
  time.timeZone = timeZone;
 | 
			
		||||
 
 | 
			
		||||
  main_user = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    userName = userName;
 | 
			
		||||
    isDesktopUser = true;
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  swaywm = {
 | 
			
		||||
      enable = desktop == "sway";
 | 
			
		||||
      useNonFree = true;
 | 
			
		||||
      installGaming = gaming;
 | 
			
		||||
      systemPackages = with pkgs; [
 | 
			
		||||
        #
 | 
			
		||||
        # Dev Tools
 | 
			
		||||
        #
 | 
			
		||||
        dbeaver
 | 
			
		||||
        cargo
 | 
			
		||||
        kakoune
 | 
			
		||||
        # flutter
 | 
			
		||||
        docker
 | 
			
		||||
        docker-compose
 | 
			
		||||
        python310
 | 
			
		||||
        nodejs_21
 | 
			
		||||
        zig
 | 
			
		||||
        ### LSP's
 | 
			
		||||
        rnix-lsp # Nix LSP
 | 
			
		||||
        openscad-lsp
 | 
			
		||||
        nodePackages.typescript-language-server
 | 
			
		||||
        vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
 | 
			
		||||
        rubyPackages.solargraph
 | 
			
		||||
        python310Packages.python-lsp-server
 | 
			
		||||
        zls
 | 
			
		||||
        ### Misc
 | 
			
		||||
        # android-udev-rules
 | 
			
		||||
        # android-tools
 | 
			
		||||
        # sdkmanager
 | 
			
		||||
        openscad
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Productivity
 | 
			
		||||
        #
 | 
			
		||||
        libreoffice
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Gaming
 | 
			
		||||
        #
 | 
			
		||||
        mumble
 | 
			
		||||
        wine-wayland
 | 
			
		||||
        r2modman
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Better Unix
 | 
			
		||||
        #
 | 
			
		||||
        bat
 | 
			
		||||
        duf
 | 
			
		||||
        fd
 | 
			
		||||
        fzf
 | 
			
		||||
        lsd
 | 
			
		||||
        ripgrep
 | 
			
		||||
        gtop
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Photo / Video
 | 
			
		||||
        #
 | 
			
		||||
        davinci-resolve-studio
 | 
			
		||||
        imv
 | 
			
		||||
        mpv
 | 
			
		||||
        gimp
 | 
			
		||||
 | 
			
		||||
        #
 | 
			
		||||
        # Work
 | 
			
		||||
        #
 | 
			
		||||
        slack
 | 
			
		||||
      ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.adb.enable = true;
 | 
			
		||||
 
 | 
			
		||||
  system.stateVersion = "23.11"; # Did you read the comment?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,141 +0,0 @@
 | 
			
		||||
# 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, inputs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ # Include the results of the hardware scan.
 | 
			
		||||
      ./hardware-configuration.nix
 | 
			
		||||
      ./modules/user/main_user.nix
 | 
			
		||||
      inputs.home-manager.nixosModules.default
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
  # Enable flakes feature
 | 
			
		||||
  nix.settings.experimental-features = [
 | 
			
		||||
    "nix-command" "flakes"
 | 
			
		||||
  ];
 | 
			
		||||
  
 | 
			
		||||
  # Use the systemd-boot EFI boot loader.
 | 
			
		||||
  boot.loader.systemd-boot.enable = true;
 | 
			
		||||
  boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
 | 
			
		||||
  # networking.hostName = "nixos"; # Define your hostname.
 | 
			
		||||
  # Pick only one of the below networking options.
 | 
			
		||||
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
 | 
			
		||||
  # networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
 | 
			
		||||
 | 
			
		||||
  # Set your time zone.
 | 
			
		||||
  time.timeZone = "America/Denver";
 | 
			
		||||
 | 
			
		||||
  # Configure network proxy if necessary
 | 
			
		||||
  # networking.proxy.default = "http://user:password@proxy:port/";
 | 
			
		||||
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
 | 
			
		||||
 | 
			
		||||
  # Select internationalisation properties.
 | 
			
		||||
  # i18n.defaultLocale = "en_US.UTF-8";
 | 
			
		||||
  # console = {
 | 
			
		||||
  #   font = "Lat2-Terminus16";
 | 
			
		||||
  #   keyMap = "us";
 | 
			
		||||
  #   useXkbConfig = true; # use xkb.options in tty.
 | 
			
		||||
  # };
 | 
			
		||||
 | 
			
		||||
  # Enable the X11 windowing system.
 | 
			
		||||
  # services.xserver.enable = true;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  # Configure keymap in X11
 | 
			
		||||
  # services.xserver.xkb.layout = "us";
 | 
			
		||||
  # services.xserver.xkb.options = "eurosign:e,caps:escape";
 | 
			
		||||
 | 
			
		||||
  # Enable CUPS to print documents.
 | 
			
		||||
  # services.printing.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable sound.
 | 
			
		||||
  # sound.enable = true;
 | 
			
		||||
  # hardware.pulseaudio.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.nate = {
 | 
			
		||||
  #   initialPassword = "password";
 | 
			
		||||
  #   extraGroups = [ "wheel" ];
 | 
			
		||||
  #   isNormalUser = true;
 | 
			
		||||
  # };
 | 
			
		||||
 | 
			
		||||
  # Use main user module
 | 
			
		||||
  main_user.enable = true;
 | 
			
		||||
  main_user.userName = "natea";
 | 
			
		||||
  
 | 
			
		||||
  # Sets up programs in /etc/profile instead of ~/.profile
 | 
			
		||||
  home-manager.useUserPackages = true;
 | 
			
		||||
  # Uses system nixpkgs instead of private, adds consistency and removes NIX_PATH dependency
 | 
			
		||||
  home-manager.useGlobalPkgs = true;
 | 
			
		||||
 | 
			
		||||
  home-manager.users.nate = { pkgs, ... }: {
 | 
			
		||||
    programs.bash.enable = true;
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
      firefox
 | 
			
		||||
      kakoune
 | 
			
		||||
      curl
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    home.stateVersion = "23.11";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # List packages installed in system profile. To search, run:
 | 
			
		||||
  # $ nix search wget
 | 
			
		||||
  # environment.systemPackages = with pkgs; [
 | 
			
		||||
  #   vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
 | 
			
		||||
  #   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 = [ ... ];
 | 
			
		||||
  # 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.
 | 
			
		||||
  #
 | 
			
		||||
  # 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 = "23.11"; # Did you read the comment?
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||















