summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--firefox/chrome/userChrome.css44
-rw-r--r--firefox/user.js208
-rw-r--r--fish/config.fish49
-rw-r--r--fish/fish_variables7
-rw-r--r--fish/functions/fish_prompt.fish6
-rw-r--r--fish/functions/fish_right_prompt.fish2
-rw-r--r--fish/functions/grep.fish5
-rw-r--r--fish/functions/ls.fish10
-rw-r--r--git/config5
-rw-r--r--jwmrc140
-rw-r--r--mpop/config19
-rw-r--r--msmtp/config20
-rw-r--r--mutt/mailcap1
-rw-r--r--mutt/muttrc71
-rw-r--r--picom/picom.conf18
-rw-r--r--xmodmap14
-rwxr-xr-xxsession26
17 files changed, 645 insertions, 0 deletions
diff --git a/firefox/chrome/userChrome.css b/firefox/chrome/userChrome.css
new file mode 100644
index 0000000..8674958
--- /dev/null
+++ b/firefox/chrome/userChrome.css
@@ -0,0 +1,44 @@
+#TabsToolbar {
+	visibility: collapse !important;
+}
+
+/* ffffe8 */
+
+/*#navigator-toolbox-background {*/
+/*
+#nav-bar {
+	background: #e5e5d0 !important;
+}
+#nav-bar:-moz-window-inactive {
+	background: #ffffe8 !important;
+}
+#urlbar-background {
+	background: inherit !important;
+}
+*/
+
+/*
+ * Replace navigation icons with text
+ */
+#back-button image,
+#forward-button image,
+#stop-reload-button image {
+	display:none !important;
+}
+#context-navigation .menu-iconic-left{
+	-moz-margin-start:15px !important; /*adjust this for your OS/theme*/
+}
+#back-button:after,
+#forward-button:after,
+#stop-button:after,
+#reload-button:after {
+	content: attr(label) !important;
+	text-decoration: underline !important;
+	color: inherit !important;
+}
+#context-navigation{
+	-moz-box-orient: vertical !important;
+}
+#context-navigation > .menuitem-iconic{
+	-moz-box-pack: start !important;
+}
diff --git a/firefox/user.js b/firefox/user.js
new file mode 100644
index 0000000..850d732
--- /dev/null
+++ b/firefox/user.js
@@ -0,0 +1,208 @@
+// settings to make firefox a little more comfy for me
+// many tips taken from https://www.reddit.com/r/firefox/comments/17hlkhp/what_are_your_must_have_changes_in_aboutconfig/
+
+//
+//
+// better ui
+
+// use system titlebar
+user_pref("browser.tabs.inTitlebar", 0);
+
+// big square scrollbar that doesn't disappear, in lieu of native them
+user_pref("widget.non-native-theme.scrollbar.style", 4);
+user_pref("widget.non-native-theme.scrollbar.size.orverride", 24);
+user_pref("widget.gtk.overlay-scrollbars.enabled", false);
+
+// make the buttons smaller
+user_pref("browser.uidensity", 1);
+
+// make websites use the colours i choose
+user_pref("browser.display.document_color_use", 2);
+user_pref("browser.display.use_system_colors", true);
+user_pref("browser.display.background_color", "#ffffe8");
+
+// don't let websites set their own fonts
+user_pref("browser.display.use_document_fonts", 0);
+
+// always enable cursor key navigation
+// user_pref("accessibility.browsewithcaret", true);
+
+// nicer settings in view source
+user_pref("view_source.wrap_long_lines", true);
+user_pref("view_source.syntax_highlight", false);
+user_pref("view_source.tab_size", 8);
+//user_pref("view_source.editor.external", true);
+//user_pref("view_source.editor.path", "emacs");
+//user_pref("view_source.tab", false);  // open source view in new window
+
+// disable user interface elements
+user_pref("browser.toolbars.bookmarks.visibility", "never");
+
+// clean new tab page
+user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
+user_pref("browser.newtabpage.activity-stream.feeds.section.topsites", false);
+user_pref("browser.newtabpage.activity-stream.showSearch", false);
+user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
+user_pref("browser.newtabpage.enabled", false);
+// TODO: still shows top sites.  Unsure how to get rid.
+
+// boring url bar: show protocol, don't grey bits out, don't "pop it out"
+user_pref("browser.urlbar.formatting.enabled", false);
+user_pref("browser.urlbar.trimURLs", false);
+user_pref("browser.urlbar.openViewOnFocus", false);
+
+// disable url bar suggestions
+// user_pref("browser.urlbar.maxRichResults", -1);
+
+// use text in the toolbar, not icons
+//user_pref("browser.chrome.toolbar_style", 1);
+
+// don't pop up menu on alt
+user_pref("ui.key.menuAccessKeyFocuses", false);
+
+// default to empty headers when printing
+user_pref("print.print_footerleft", "");
+user_pref("print.print_footerright", "");
+user_pref("print.print_headerleft", "");
+user_pref("print.print_headerright", "");
+
+// don't show a disclaimer for about:config
+user_pref("browser.aboutConfig.showWarning", false);
+
+// backspace to go back
+user_pref("browser.backspace_action", 0);
+
+//
+//
+// Disable unused features
+
+// disable firefox view
+user_pref("browser.tabs.firefox-view", false);
+
+// disable pocket
+user_pref("extensions.pocket.enabled", false);
+user_pref("extensions.pocket.showHome", false);
+user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false);
+user_pref("browser.newtabpage.activity-stream.discoverystream.sendToPocket.enabled", false);
+user_pref("browser.newtabpage.activity-stream.discoverystream.saveToPocketCard.enabled", false);
+
+// disable reader view
+user_pref("reader.parse-on-load.enabled", false);
+
+// disable telemetry
+user_pref("app.shield.optoutstudies.enabled", false);
+user_pref("datareporting.healthreport.service.enabled", false);
+user_pref("datareporting.healthreport.uploadEnabled", false);
+user_pref("datareporting.policy.dataSubmissionPolicyAcceptedVersion", 2);
+user_pref("datareporting.policy.dataSubmissionPolicyNotifiedTime", "1450604664862");
+user_pref("datareporting.policy.firstRunTime", "1450604654097");
+
+// disable https only.
+user_pref("dom.security.https_only_mode_ever_enabled", false);
+user_pref("dom.security.https_only_mode", false);
+
+// disable experiments
+user_pref("experiments.enabled", false);
+user_pref("experiments.supported", false);
+
+// don't save passwords
+user_pref("signon.rememberSignons", false);
+
+// disable firefox accounts
+user_pref("identity.fxaccounts.enabled", false);
+
+// disable picture-in-picture video
+user_pref("media.videocontrols.picture-in-picture.video-toggle.enabled", false);
+
+// disable safe browsing
+user_pref("browser.safebrowsing.downloads.remote.enabled", false);
+user_pref("browser.safebrowsing.enabled", false);
+user_pref("browser.safebrowsing.malware.enabled", false);
+user_pref("browser.safebrowsing.phishing.enabled", false);
+
+//
+//
+// Enable used features
+
+// enable userchrome
+user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
+
+// always prompt me for download location
+user_pref("browser.download.useDownloadDir", false);
+
+//
+//
+// Window oriented behaviour
+
+// Middle clock opens in a new window
+user_pref("browser.tabs.opentabfor.middleclick", false);
+user_pref("middlemouse.openNewWindow", true);
+
+// open links in the current tab (1), even if the website says otherwise (0)
+user_pref("browser.link.open_newwindow", 1);
+user_pref("browser.link.open_newwindow.restriction", 0);
+
+// Closing the last tab closes the browser
+// user_pref("browser.tabs.closeWindowWithLastTab", false);
+
+//
+//
+// speed related things
+user_pref("nglayout.initialpaint.delay", 0);
+
+//
+//
+// Settings to increase caches etc, which ostensibly speed firefox up but that many people recommend against
+
+// dont save browsing session to disk so often
+user_pref("browser.cache.disk.enable", false);
+user_pref("browser.cache.memory.enable", true);
+
+// Lower cache size as we are now storing it in memory not on disk
+user_pref("media.cache_size", 102400);
+user_pref("media.memory_caches_combined_limit_kb", 102400);
+user_pref("image.mem.surfacecache.max_size_kb", 102400);
+
+// Only save the session once per day
+user_pref("browser.sessionstore.interval", 86400000);
+// Don't store recently parsed recent pages in memory
+user_pref("browser.sessionhistory.max_total_viewers", 0);
+
+// Increase the defaults for a bunch of settings related to http requests.
+user_pref("network.buffer.cache.size", 524288);
+user_pref("network.buffer.cache.count", 128);
+user_pref("network.http.max-connections", 1800);
+user_pref("network.http.max-persistent-connections-per-server", 12);
+user_pref("network.http.max-urgent-start-excessive-connections-per-host", 10); user_pref("network.http.pacing.requests.burst", 32);
+user_pref("network.http.pacing.requests.min-parallelism", 10);
+user_pref("network.websocket.max-connections", 400);
+user_pref("network.ssl_tokens_cache_capacity", 32768);
+// also see "security.pki.crlite_mode" and "browser.cache.memory.capacity"
+
+
+
+/* misc stuff */
+//user_pref("browser.fixup.dns_first_for_single_words", true);
+//user_pref("browser.reader.detectedFirstArticle", true);
+//user_pref("browser.search.suggest.enabled", false);
+//user_pref("browser.search.update", false);
+//user_pref("browser.sessionstore.restore_on_demand", false);
+//user_pref("browser.sessionstore.resume_from_crash", false);
+
+//user_pref("browser.tabs.animate", false);
+//
+//user_pref("browser.tabs.warnOnClose", false);
+//user_pref("browser.warnOnQuit", false);
+//user_pref("browser.warnOnQuitShortcut", false);
+//
+
+//
+
+//user_pref("general.smoothScroll", false);
+//user_pref("keyword.enabled", false);
+//user_pref("layout.spellcheckDefault", 0);
+//user_pref("mousewheel.system_scroll_override.enabled", false);
+//user_pref("network.allow-experiments", false);
+//user_pref("network.captive-portal-service.enabled", false);
+//user_pref("pdfjs.disabled", true);
+//user_pref("security.webauth.u2f", true);
diff --git a/fish/config.fish b/fish/config.fish
new file mode 100644
index 0000000..046e1ff
--- /dev/null
+++ b/fish/config.fish
@@ -0,0 +1,49 @@
+if status is-interactive
+    # Commands to run in interactive sessions can go here
+end
+
+set fish_greeting
+
+fish_add_path $HOME/Scripts
+
+set -Ux NO_COLOR
+
+# unset most of the colours
+set fish_color_normal normal
+set fish_color_command
+set fish_color_quote
+set fish_color_redirection
+set fish_color_end
+set fish_color_error
+set fish_color_param
+set fish_color_comment
+set fish_color_match
+set fish_color_selection --reverse
+set fish_color_search_match --reverse
+set fish_color_history_current
+set fish_color_operator
+set fish_color_escape
+set fish_color_cwd                         # normal
+set fish_color_cwd_root                    # normal
+set fish_color_valid_path
+set fish_color_autosuggestion --underline
+set fish_color_user                        # normal
+set fish_color_host                        # normal
+set fish_color_cancel --reverse
+set fish_pager_color_prefix --underline
+set fish_pager_color_progress red
+set fish_pager_color_completion            # normal
+set fish_pager_color_description
+set fish_pager_color_selected_background --reverse
+set fish_color_host_remote
+set fish_pager_color_selected_description
+set fish_pager_color_selected_prefix
+set fish_color_option
+set fish_pager_color_secondary_background
+set fish_color_keyword
+set fish_pager_color_background
+set fish_pager_color_secondary_description
+set fish_pager_color_secondary_prefix
+set fish_pager_color_selected_completion
+set fish_pager_color_secondary_completion
+set fish_color_status
diff --git a/fish/fish_variables b/fish/fish_variables
new file mode 100644
index 0000000..fc92707
--- /dev/null
+++ b/fish/fish_variables
@@ -0,0 +1,7 @@
+# This file contains fish universal variable definitions.
+# VERSION: 3.0
+SETUVAR --export MOZ_ENABLE_WAYLAND:1
+SETUVAR --export NO_COLOR:\x1d
+SETUVAR __fish_initialized:3400
+SETUVAR fish_key_bindings:fish_default_key_bindings
+SETUVAR fish_user_paths:/usr/local/go/bin\x1e/home/noa/\x2econfig/Scripts\x1e/home/noa/binaries\x1e/home/noa/\x2elocal/bin
diff --git a/fish/functions/fish_prompt.fish b/fish/functions/fish_prompt.fish
new file mode 100644
index 0000000..eeec7d8
--- /dev/null
+++ b/fish/functions/fish_prompt.fish
@@ -0,0 +1,6 @@
+function fish_prompt
+    #set_color $fish_color_cwd
+    echo -n (basename $PWD)
+    #set_color normal
+    echo -n ' ) '
+end
diff --git a/fish/functions/fish_right_prompt.fish b/fish/functions/fish_right_prompt.fish
new file mode 100644
index 0000000..c1b019e
--- /dev/null
+++ b/fish/functions/fish_right_prompt.fish
@@ -0,0 +1,2 @@
+function fish_right_prompt
+end
diff --git a/fish/functions/grep.fish b/fish/functions/grep.fish
new file mode 100644
index 0000000..bf66e8e
--- /dev/null
+++ b/fish/functions/grep.fish
@@ -0,0 +1,5 @@
+# grep without colour
+
+function grep
+	command grep --color=never $argv
+end
diff --git a/fish/functions/ls.fish b/fish/functions/ls.fish
new file mode 100644
index 0000000..94fa076
--- /dev/null
+++ b/fish/functions/ls.fish
@@ -0,0 +1,10 @@
+# ls but do it without colour
+
+function ls --description "List contents of directory"
+	# make ls show */=>@| indicators
+	isatty stdout
+	and set -a opt -F
+
+	# command $__fish_ls_command $__fish_ls_color_opt $opt $argv
+	command ls $opt $argv
+end
diff --git a/git/config b/git/config
new file mode 100644
index 0000000..66d1acb
--- /dev/null
+++ b/git/config
@@ -0,0 +1,5 @@
+[init]
+	defaultBranch = main
+[user]
+	email = noa@gaiwan.org
+	name = noa
diff --git a/jwmrc b/jwmrc
new file mode 100644
index 0000000..e59390c
--- /dev/null
+++ b/jwmrc
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<JWM>
+	<Group>
+		<Option>tiled</Option>
+		<Option>aerosnap</Option>
+	</Group>
+	
+	<RootMenu>
+		<Restart label="Restart" />
+		<Exit label="Exit" confirm="true" />
+	</RootMenu>
+
+	<Tray x="0" y="-1" autohide="off">
+		<TrayButton label="Run">exec:~/Scripts/launch</TrayButton>
+    		<Spacer width="2" />
+		<TaskList maxwidth="256"/>
+		<Dock/>
+		<Clock format="%H:%M"></Clock>
+		<Spacer width="2" />
+		<TrayButton label="System">root:1</TrayButton>
+	</Tray>
+
+	<!-- Visual Styles -->
+	<WindowStyle decorations="flat">
+		<Font>Noto Sans CJK SC-16</Font>
+		<Width>4</Width>
+		<!--<Height>32</Height>-->
+		<Corner>0</Corner>
+		
+		<Foreground>#000000</Foreground>
+		<Background>#ffffff</Background>
+		<Outline>#000000</Outline>
+		<Opacity>1.0</Opacity>
+
+		<Active>
+			<Foreground>#000000</Foreground>
+			<Background>#ffffff</Background>
+ 			<Outline>#000000</Outline>
+		</Active>
+	</WindowStyle>
+
+	<MenuStyle>
+		<Background>#ffffff</Background>
+		<Foreground>#000000</Foreground>
+	</MenuStyle>
+
+	<TrayStyle group="true" list="all">
+		<Font>Noto Sans CJK SC-16</Font>
+		<Background>#ffffff</Background>
+		<Foreground>#000000</Foreground>
+		<Outline>#000000</Outline>
+		<Opacity>1</Opacity>
+	</TrayStyle>
+
+	<TaskListStyle>
+		<Font>Sans-9</Font>
+		<Active>
+			<Foreground>#000000</Foreground>
+			<Background>#ffffff</Background>
+		</Active>
+		<Foreground>#000000</Foreground>
+		<Background>#ffffff</Background>
+	</TaskListStyle>
+
+	<PopupStyle>
+		<Font>Sans-9</Font>
+		<Foreground>#000000</Foreground>
+		<Background>#ffffff</Background>
+	</PopupStyle>
+
+    <!-- Path where icons can be found.
+         IconPath can be listed multiple times to allow searching
+         for icons in multiple paths.
+      -->
+    <IconPath>
+        /usr/share/icons/wm-icons/32x32-aquafusion
+    </IconPath>
+    <IconPath>
+        /usr/local/share/jwm
+    </IconPath>
+
+    <!-- Virtual Desktops -->
+	<Desktops width="1" height="1">
+		<!-- <Background type="solid">#ffffff</Background> -->
+		<Background type="image">/home/noa/Pictures/Wallpapers/horse-mono.png</Background>
+	</Desktops>
+
+    <!-- Double click speed (in milliseconds) -->
+    <DoubleClickSpeed>400</DoubleClickSpeed>
+
+    <!-- Double click delta (in pixels) -->
+    <DoubleClickDelta>2</DoubleClickDelta>
+
+    <!-- The focus model (sloppy or click) -->
+    <FocusModel>sloppy</FocusModel>
+
+    <!-- The snap mode (none, screen, or border) -->
+    <SnapMode distance="10">border</SnapMode>
+
+    <!-- The move mode (outline or opaque) -->
+    <MoveMode>opaque</MoveMode>
+
+    <!-- The resize mode (outline or opaque) -->
+    <ResizeMode>opaque</ResizeMode>
+
+	<!-- Key bindings -->
+	<Key key="Up">up</Key>
+	<Key key="Down">down</Key>
+	<Key key="Right">right</Key>
+	<Key key="Left">left</Key>
+	<Key key="h">left</Key>
+	<Key key="j">down</Key>
+	<Key key="k">up</Key>
+	<Key key="l">right</Key>
+	<Key key="Return">select</Key>
+	<Key key="Escape">escape</Key>
+
+	<Key key="XF86Search">exec:~/Scripts/launch</Key>
+	<Key mask="A" key="XF86Search">exec:rofi -show calc -modi calc -no-show-match -no-sort</Key>
+	<Key mask="A" key="p">exec:~/Scripts/enqueue</Key>
+
+	<Key key="XF86MonBrightnessDown">exec:brightnessctl -d intel_backlight set 5%-</Key>
+	<Key key="XF86MonBrightnessUp">exec:brightnessctl -d intel_backlight set 5%+</Key>
+	<Key key="XF86AudioRaiseVolume">exec:amixer -D pulse sset Master 5%+</Key>
+	<Key key="XF86AudioLowerVolume">exec:amixer -D pulse sset Master 5%-</Key>
+	<Key key="XF86AudioMute">exec:amixer -D pulse sset Master toggle</Key>
+
+	<Key mask="A" key="q">restart</Key>
+
+	<Key mask="A" key="Tab">nextstacked</Key>
+	<Key mask="A" key="F4">close</Key>
+	<Key mask="A" key="#">desktop#</Key>
+	<Key mask="A" key="F2">window</Key>
+	<Key mask="A" key="F10">maximize</Key>
+	<Key mask="A" key="Right">rdesktop</Key>
+	<Key mask="A" key="Left">ldesktop</Key>
+	<Key mask="A" key="Up">udesktop</Key>
+	<Key mask="A" key="Down">ddesktop</Key>
+
+</JWM>
diff --git a/mpop/config b/mpop/config
new file mode 100644
index 0000000..7a06291
--- /dev/null
+++ b/mpop/config
@@ -0,0 +1,19 @@
+defaults
+tls on
+tls_starttls off
+auth on
+port 995
+uidls_file ~/Documents/mail/mpop-uidls/%U_at_%H
+
+account noa.pub
+keep on
+host mail.noa.pub
+user noa@noa.pub
+delivery mbox ~/Documents/mail/inbox/noa.pub.mbox
+
+account gaiwan.org
+keep on
+host pop.fastmail.com
+user noa@gaiwan.org
+delivery mbox ~/Documents/mail/inbox/gaiwan.mbox
+passwordeval "cat ~/.mpop-pass"
diff --git a/msmtp/config b/msmtp/config
new file mode 100644
index 0000000..6d95187
--- /dev/null
+++ b/msmtp/config
@@ -0,0 +1,20 @@
+defaults
+auth on
+tls on
+
+account fastmail
+host smtp.fastmail.com
+port 465
+tls_starttls off
+from noa@gaiwan.org
+user noa@gaiwan.org
+passwordeval "pass msmtp-baby | head -n1"
+
+account noa.pub
+host mail.noa.pub
+port 465
+tls_starttls off
+from noa@noa.pub
+user noa@noa.pub
+
+account default: noa.pub
diff --git a/mutt/mailcap b/mutt/mailcap
new file mode 100644
index 0000000..c9f551b
--- /dev/null
+++ b/mutt/mailcap
@@ -0,0 +1 @@
+text/html; w3m -I %{charset} -T text/html; copiousoutput
diff --git a/mutt/muttrc b/mutt/muttrc
new file mode 100644
index 0000000..a959277
--- /dev/null
+++ b/mutt/muttrc
@@ -0,0 +1,71 @@
+set mbox_type = Maildir
+set folder = "~/Documents/Mail/"
+set spoolfile = "+Inbox"
+set postponed = "+Drafts"
+set record = "+Sent"
+unset move
+
+set signature = ~/.config/mutt/signature
+
+alternates .*@gaiwan.org
+
+set wait_key = no
+# set delete
+# unset confirmappend
+# set quit
+unset mark_old
+
+set status_on_top = yes
+set status_format = "%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? %>-%?p?( %p postponed ) "
+set help = no
+
+ignore *
+unignore from: to: cc: date: subject:
+unhdr_order *
+hdr_order from: to: cc: date: subject:
+
+set markers = no
+unset user_agent
+set sort = threads
+set sort_aux = reverse-last-date-received
+set date_format = "%m/%d"
+set index_format="[%Z] %D %-16.16F  %s"
+
+# Mailcap
+alternative_order text/plain text text/html
+set mailcap_path = ~/.config/mutt/mailcap
+auto_view text/html
+
+# macro pager \Cu "|urlscan -cd<enter>" "call urlscan to open links
+
+macro index,pager,attach,compose \Cb "\
+<enter-command> set my_pipe_decode=\$pipe_decode pipe_decode<Enter>\
+<pipe-message> urlview<Enter>\
+<enter-command> set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<Enter>" \
+"call urlview to extract URLs out of a message"
+
+# Colours
+color normal              default default
+color attachment    bold  default default
+color hdrdefault             cyan default
+color indicator           default red
+color quoted              default yellow
+color signature              cyan default
+color status      reverse default default
+color tilde                  blue default
+color tree                default default
+
+color index red default ~P
+color index red default ~D
+color index default yellow ~T
+
+color header brightdefault default ^From:
+color header brightdefault default ^To:
+color header brightdefault default ^Date:
+color header brightdefault default ^Cc:
+color header brightdefault default ^Subject:
+
+# emails and urls
+color body brightdefault default [\-\.+_a-zA-Z0-9]+@[\-\ea-zA-Z0-9]+
+color body brightdefault default (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+
+
diff --git a/picom/picom.conf b/picom/picom.conf
new file mode 100644
index 0000000..0820d7e
--- /dev/null
+++ b/picom/picom.conf
@@ -0,0 +1,18 @@
+# picom -cfF -o 0.38 -O 200 -I 200 -t 0 -l 0 -r 3 -D2 -m 0.88
+shadow = true;
+# opacity = 0.38;
+fade-out-step = 200;
+fade-in-step = 200;
+shadow-offset-y = 6;
+shadow-offset-x = 6;
+shadow-radius = 0;
+# fade-delta = 2;
+
+wintypes:
+{
+	# menu        = { shadow = false; };
+	dropdown_menu = { shadow = false; };
+	popup_menu    = { shadow = false; };
+	utility       = { shadow = false; };
+}
+# TODO: make tooltips have a smaller shadow (3x3)
diff --git a/xmodmap b/xmodmap
new file mode 100644
index 0000000..b4ab7b2
--- /dev/null
+++ b/xmodmap
@@ -0,0 +1,14 @@
+clear lock
+clear mod1
+clear control
+
+! Set key left of spacebar to control
+keycode 64 = Control_L
+add control = Control_L
+
+! Set key right of spacebar to alt
+keycode 108 = Alt_L
+add mod1 = Alt_L
+
+! Set caps lock to search
+keycode 66 = XF86Search
diff --git a/xsession b/xsession
new file mode 100755
index 0000000..c300841
--- /dev/null
+++ b/xsession
@@ -0,0 +1,26 @@
+brightnessctl -d intel_backlight set 25%
+
+# compositor
+picom -b
+
+# dock apps
+cbatticon &
+pnmixer &
+nm-tray &
+qlipper &
+
+# password manager
+keepassxc &
+
+# ime
+GTK_IM_MODULE=fcitx
+QT_IM_MODULE=fcitx
+XMODIFIERS=@im=fcitx
+fcitx5 -d
+
+# put ctrl left of spacebar and caps to search key.
+# this has to come after fcitx
+xmodmap ~/.config/xmodmap
+
+# exec startfluxbox
+exec jwm -f ~/.config/jwmrc