diff --git a/jaci/desktop-configuration.nix b/jaci/desktop-configuration.nix index 97b1423..369010a 100644 --- a/jaci/desktop-configuration.nix +++ b/jaci/desktop-configuration.nix @@ -28,7 +28,7 @@ in imports = [ modules/user/main_user.nix - modules/kde/kde_conf.nix + modules/labwc/labwc_conf.nix ]; config = { @@ -51,7 +51,7 @@ in # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - boot.plymouth.enable = 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. @@ -79,7 +79,7 @@ in # isDesktopUser = true; # }; - kde = { + labwc = { enable = true; useNonFree = true; installGaming = deskCfg.installGaming; diff --git a/jaci/dotfiles/labwc/autostart b/jaci/dotfiles/labwc/autostart new file mode 100644 index 0000000..023e367 --- /dev/null +++ b/jaci/dotfiles/labwc/autostart @@ -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 & + diff --git a/jaci/dotfiles/labwc/bullet.xbm b/jaci/dotfiles/labwc/bullet.xbm new file mode 100644 index 0000000..79432ba --- /dev/null +++ b/jaci/dotfiles/labwc/bullet.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/close.xbm b/jaci/dotfiles/labwc/close.xbm new file mode 100644 index 0000000..6677987 --- /dev/null +++ b/jaci/dotfiles/labwc/close.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/desk.xbm b/jaci/dotfiles/labwc/desk.xbm new file mode 100644 index 0000000..a9498e4 --- /dev/null +++ b/jaci/dotfiles/labwc/desk.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/desk_toggled.xbm b/jaci/dotfiles/labwc/desk_toggled.xbm new file mode 100644 index 0000000..02ada31 --- /dev/null +++ b/jaci/dotfiles/labwc/desk_toggled.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/iconify.xbm b/jaci/dotfiles/labwc/iconify.xbm new file mode 100644 index 0000000..8689c16 --- /dev/null +++ b/jaci/dotfiles/labwc/iconify.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/max.xbm b/jaci/dotfiles/labwc/max.xbm new file mode 100644 index 0000000..d7e925e --- /dev/null +++ b/jaci/dotfiles/labwc/max.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/max_disabled.xbm b/jaci/dotfiles/labwc/max_disabled.xbm new file mode 100644 index 0000000..4ff5bce --- /dev/null +++ b/jaci/dotfiles/labwc/max_disabled.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/max_toggled.xbm b/jaci/dotfiles/labwc/max_toggled.xbm new file mode 100644 index 0000000..272bba8 --- /dev/null +++ b/jaci/dotfiles/labwc/max_toggled.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/menu.xml b/jaci/dotfiles/labwc/menu.xml new file mode 100644 index 0000000..deeef9b --- /dev/null +++ b/jaci/dotfiles/labwc/menu.xml @@ -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> diff --git a/jaci/dotfiles/labwc/rc.xml b/jaci/dotfiles/labwc/rc.xml new file mode 100644 index 0000000..668eda0 --- /dev/null +++ b/jaci/dotfiles/labwc/rc.xml @@ -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> diff --git a/jaci/dotfiles/labwc/shade.xbm b/jaci/dotfiles/labwc/shade.xbm new file mode 100644 index 0000000..b24c8d3 --- /dev/null +++ b/jaci/dotfiles/labwc/shade.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/shade_toggled.xbm b/jaci/dotfiles/labwc/shade_toggled.xbm new file mode 100644 index 0000000..6eed12e --- /dev/null +++ b/jaci/dotfiles/labwc/shade_toggled.xbm @@ -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 }; diff --git a/jaci/dotfiles/labwc/themerc b/jaci/dotfiles/labwc/themerc new file mode 100644 index 0000000..e941218 --- /dev/null +++ b/jaci/dotfiles/labwc/themerc @@ -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 diff --git a/jaci/dotfiles/paper-openbox-200409.zip b/jaci/dotfiles/paper-openbox-200409.zip new file mode 100644 index 0000000..29037bc Binary files /dev/null and b/jaci/dotfiles/paper-openbox-200409.zip differ diff --git a/jaci/modules/home-manager/home.nix b/jaci/modules/home-manager/home.nix index 33e6867..7e24b75 100644 --- a/jaci/modules/home-manager/home.nix +++ b/jaci/modules/home-manager/home.nix @@ -108,20 +108,20 @@ # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. - # home.file."${config.xdg.configHome}" = { + 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; + 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 diff --git a/jaci/modules/kde/kde_conf.nix b/jaci/modules/kde/kde_conf.nix deleted file mode 100644 index aba5507..0000000 --- a/jaci/modules/kde/kde_conf.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib, config, pkgs, ... }: -{ - options.kde = { - enable = lib.mkEnableOption "Enable kde."; - useNonFree = lib.mkOption { - default = false; - example = true; - description = "Whether to enable non-free software in the kde 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 kde defaults."; - }; - - }; - - ### - ## Configuration - ### - config = lib.mkIf config.kde.enable { - - nixpkgs.config.allowUnfree = config.kde.useNonFree; - - ### - ## System Packages - ### - environment.systemPackages = with pkgs; lib.lists.flatten [ - [ - bash - git - glib # gsettings - ncspot - zsh - ] - config.kde.systemPackages - ]; - - programs.zsh.enable = true; - programs.steam.enable = config.kde.installGaming; - - # kdeconnect setup - programs.kdeconnect.enable = true; - - ### - ## Services - ### - services.openssh.enable = true; - # services.dbus.enable = true; - # enabling kde - services.xserver.enable = true; - services.xserver.displayManager.defaultSession = "plasmawayland"; - services.xserver.displayManager.sddm.enable = true; - services.xserver.desktopManager.plasma5.enable = true; - ### - ## Misc - ### - sound.enable = true; - - hardware.opengl = { - enable = true; - driSupport = true; - }; - }; -} diff --git a/jaci/modules/labwc/labwc_conf.nix b/jaci/modules/labwc/labwc_conf.nix new file mode 100644 index 0000000..33d7ccb --- /dev/null +++ b/jaci/modules/labwc/labwc_conf.nix @@ -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; + }; + }; +} diff --git a/nate/desktop-configuration.nix b/nate/desktop-configuration.nix index 31fb333..413b473 100644 --- a/nate/desktop-configuration.nix +++ b/nate/desktop-configuration.nix @@ -54,7 +54,7 @@ in # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - boot.plymouth.enable = 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. diff --git a/nate/modules/apps/firefox/firefox.nix b/nate/modules/apps/firefox/firefox.nix index 1b9dae5..27a813a 100644 --- a/nate/modules/apps/firefox/firefox.nix +++ b/nate/modules/apps/firefox/firefox.nix @@ -38,6 +38,7 @@ in 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"; diff --git a/nate/modules/home-manager/home.nix b/nate/modules/home-manager/home.nix index a7fcb33..321dfad 100644 --- a/nate/modules/home-manager/home.nix +++ b/nate/modules/home-manager/home.nix @@ -74,6 +74,8 @@ ripgrep tre-command gtop + # Normies + unzip # # Photo / Video diff --git a/nate/modules/sway/sway_conf.nix b/nate/modules/sway/sway_conf.nix index 30a9201..efc8924 100644 --- a/nate/modules/sway/sway_conf.nix +++ b/nate/modules/sway/sway_conf.nix @@ -125,8 +125,12 @@ # 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; }; }; diff --git a/nate/nixos/hardware-configuration.nix b/nate/nixos/hardware-configuration.nix index 31e746e..29201f6 100644 --- a/nate/nixos/hardware-configuration.nix +++ b/nate/nixos/hardware-configuration.nix @@ -9,7 +9,7 @@ ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "uas" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; + boot.initrd.kernelModules = [ "amdgpu" ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ];