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"
|
||||
|
68
flake.nix
@ -3,44 +3,24 @@
|
||||
|
||||
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 = {
|
||||
nixosConfigurations = {
|
||||
nixServer = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
@ -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 {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.${userName} = import ./modules/home-manager/home.nix;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs outputs userName fullName email hostName desktop gaming;
|
||||
};
|
||||
}
|
||||
# Setup home manager
|
||||
inputs.home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.nate = import ./nate/modules/home-manager/home.nix;
|
||||
home-manager.extraSpecialArgs = {
|
||||
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 Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 221 KiB |
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 218 KiB |
Before Width: | Height: | Size: 772 KiB After Width: | Height: | Size: 772 KiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 344 KiB After Width: | Height: | Size: 344 KiB |
Before Width: | Height: | Size: 591 KiB After Width: | Height: | Size: 591 KiB |
Before Width: | Height: | Size: 138 KiB After Width: | Height: | 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 = {
|
||||
enable = true;
|
||||
# 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?
|
||||
|
||||
}
|
||||
|